from collections import Counter
def solution(N, stages):
#실패율 => 도달했지만 클리어 못한 플레이어의 수 / 스테이지에 도달한 플레이어수
#스테이지의 개수 N, 현재 멈춰있는 스테이지의 번호 배열 stages
#실패율이 높은 스테이지부터 내림차순으로 스테이지의 번호가 담긴 배열을 return하라.
#현재 스테이지에 멈춘 사람들 / 전체 명수 - 전 스테이지의 명 수 빼기 => 실패율 for문으로
#dictionary로 order 만들기.
stage_dict = Counter(stages) #스테이지에 따른 플레이어의 수
total_players = len(stages) #플레이어의 수
failer_dict = {}
# print("stage dict : ", stage_dict)
for stage in range(1, N+1):
if stage in stage_dict:
# print("stage : ", stage)
fail_score = stage_dict[stage]/total_players #현재스테이지의사람/전체플레이어의수
failer_dict[stage] = fail_score #현재스테이지의 실패율을 dictionary에 기록
total_players -= stage_dict[stage] #현재 스테이지의 사람을 전체 플레이어의 수에서 제외
else:
fail_score = 0
failer_dict[stage] = fail_score #스테이지에 도달한 유저가 없는 경우, 실패율은 0
answer = sorted(failer_dict.items(), key = lambda x : (x[1], -x[0]), reverse = True)
real_answer = [x for x, y in answer]
return real_answer