PROGRAMMERS Python Lv1. 실패율

최대 1 분 소요

이번 문제는 실패율이다.

정답 코드는 다음과 같다.

혼자 풀지 못해서 모답 답안을 가져왔다.

def solution(N, stages):
    result = {}
    denominator = len(stages)
    for stage in range(1, N+1):
        if denominator != 0:
            count = stages.count(stage)
            result[stage] = count / denominator
            denominator -= count
        else:
            result[stage] = 0
    return sorted(result, key=lambda x : result[x], reverse=True)

1부터 N까지의 수를 for문으로 돌리고,

count함수를 이용해서 몇 개인지 찾은다음

전체 길이인 denominator로 나눠주고

마지막에 계산해준 결과값만큼 원소 갯수를 빼주면 된다.

결과로는 value값들을 비교해주면서 키 값을 출력해주면 된다.

내가 몰랐던 건 count함수를 통해 원소의 갯수를 확인할 수 있다는 것이고,

때론 dictionary를 활용해서 문제를 푸는 것도 좋은 방법이라는 것이다.

댓글남기기