[프로그래머스] 실패율
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