Python/Algorithm

[프로그래머스] 실패율 - Python

언킴 2023. 9. 2. 21:41
반응형

이번 문제는 2019 KAKAO BLIND RECRUITMENT 에서 출제된 문제다. 프로그래머스 기준 Level 1에 해당하는 문제로, 쉽게 풀 수 있다. 

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

각 스테이지별 실패율을 표시하고, 실패율이 일치하는 경우 스테이지가 낮은 순서대로 정렬하면 된다. 스테이지 번호를 for 문으로 받아와서 count로 갯수를 먼저 카운팅한다. 해당 스테이지에 멈춰있다는 것은 그 스테이지를 실패한 것으로 보기 때문에 실패율을 찾고, length로 나누면 된다.