프로그래머스 - 실패율

박상진·2021년 12월 29일
0

프로그래머스

목록 보기
36/65

자세한 설명은 링크 참고
스테이지를 통과하지 못한 사용자의 비율을 구하는 문제이다.

N이 스테이지의 총 개수이고, stages는 사용자 개인이 머물러 있는 스테이지이다. 스테이지 1부터 stages안에 있는 플레이어 수를 전체에서 나누어 주었고, 각각 실패율을 구하기 위해 플레이어를 모두 빼주었다.
이후 각각 실패율에 따라 sorted해주었는데, 이것은 검색이 조금 필요했다. 코드는 이렇다.

lambda를 사용하여 딕셔너리를 sorted해주는 방법이 있어서 너무 다행이었다.
lambda의 사용 결과는 [(a,1),(b,2)]같은 방식으로 나온다.
기본 설정이 오름차순이어서 reverse=True를 넣어주었다.
결과는
시간 초과로 실패하였다.

구글링이 시작되었다.
시간복잡도로 검색하고 결과를 가져왔다.
가장 먼저 하나씩 확인해가며 삭제해주었던 부분을 빼고, 전체 숫자에서 빼주는 것으로 바뀌었다.
또한 for문으로 하나씩 append()해주던 부분도 빠졌다. lambda함수가 정말 편리하다는것을 깨닫는다.
결과는
level2보다 더 어려운 level1도 있다는 것을 실감한다. 한 문제에 한시간이 넘게 걸리는데, 점점 나아지면 좋겠다.

profile
개발자가 되고싶당

0개의 댓글