python/알고리즘 문제풀이

[프로그래머스 | 파이썬3] 실패율 - 정렬

빛날희- 2021. 12. 8. 19:32

https://programmers.co.kr/learn/courses/30/lessons/42889

 

코딩테스트 연습 - 실패율

실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스

programmers.co.kr

> 정렬

딕셔너리를 선언해서 key값엔 stage 단계, value값엔 실패율을 담은 후, sorted로 정렬했다.

그런데 문제는 sorted에서 dict.items()로 정렬하는 과정에서 딕셔너리가 리스트+튜플 형태로 변하기 때문에, 리스트 내의 튜플에서 stage값만 추출하기 위해 다시 반복문을 돌렸다. 

* 마지막 스테이지까지 도달한 사람이 없을 경우(마지막 stage의 leng이 0인 경우)를 고려해 주지 않으면 cnt를 0으로 나눠주는 것이기 때문에 runtime error가 나는 것에 주의해야한다. 

* 정렬부분에서 부터 return 부분까지 개선이 필요하다.

 

 

>배운 점

다른 사람의 풀이를 참고하여 마지막 부분 코드를 개선했다. 

딕셔너리의 경우 정렬을 할 때 기본적으로 key가 정렬기준으로 들어가고 출력된다. 그런데 해당 문제에선 value가 정렬기준이 되어야 하므로 lambda x: answer[x] 를 통해 정렬 기준을 value로 설정해주었다. value를 기준으로 내림정렬되고 출력 값은 key값으로 출력된다.