프로그래머스 카카오 2019 공채 문제와 동일
실패율 : 스테이지에 도달했으나, 아직 클리어 하지 못한 플러이어의 수 / 스테이지에 도달한 플레이어의 수
전체 스테이지의 수 N , 게임을 이용하는 사용자가 현재 멈춰있는 스테이지의 번호가 담긴 배열 stages
실패율이 높은 스테이지부터 내림차순으로 스테이지의 번호가 담겨있는 배열을 return
스테이지의 개수는 1-500
stages의 길이는 1-200000
stages에는 1- N+1이하의 자연수
실패율이 같은 스테이지가 있다면, 작은 번호의 스테이지가 먼저 오도록
스테이지에 도달한 유저가 없는 경우 스테이지의 실패율은 0
def solution(N, stages):
answer = []
length = len(stages)
# 스테이지 번호 증가
for i in range(1, N+1):
count = stages.count(i) # 스테이지에 있는 사람 수
# 실패율
if length == 0:
fail = 0
else :
fail = count/length
# 스테이지 번호, 실패율 저장
answer.append((i, fail))
length -= count
# 실패율 기준 정렬
answer.sort(key = lambda x : x[1], reverse=True) # 실패율이 큰 순서대로
answer = [ i[0] for i in answer] # 스테이지 번호만 저장
return answer