[프로그래머스] 실패율

Updated:

개요

예전에 풀었었던 문제이다. (실패율) 그때는 내 손으로 해결하지 못했지만 프로그래머스 문제를 정주행하면서 다시 풀게 되었고 해결하였다.

풀이과정

내 풀이

collections의 Counter를 활용하여 스테이지별로 멈춰있는 플레이어의 수를 계산한다. 그 후 딕셔너리 자료형으로 바꾸어 스테이지별로 for문을 돌려서 실패율을 구하고 sort를 통해 정답을 계산하였다.

from collections import Counter
def solution(N, stages):
    answer = []
    peoples = len(stages)
    # 실패율 = 스테이지에 도달했으나 아직 클리어하지 못한 플레이어의 수 / 스테이지에 도달한 플레이어 수
    users = Counter(stages)  
    users = dict(users)
    for i in range(1,N+1):
        if i in users:
            answer.append((users[i]/peoples,i))
            peoples -= users[i]
        else:
            answer.append((0, i))
    result = sorted(answer, key = lambda x : (-x[0], x[1]))
    result2 = []
    for i in result:
        a, b = i
        result2.append(b)
    return result2

Leave a comment