Algorithm/Programmers

[Programmers] Lv1. 실패율

by somida 2021. 5. 15.

문제

바로가기

 

코딩테스트 연습 - 실패율

실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스

programmers.co.kr


풀이

  • 처음에는 answer에 append하는 방식으로 구현할까 했지만, answer에 각각의 인덱스를 키로 가지고 실패율을 값으로 해서 dictionary를 구현하였다.
  • 그리고 남아있는 멤버가 없으면 실패율은 0이고, 남아있는 멤버가 있으면 (현재 스테이지에 있는 사람의 수 / 남아있는 사람 수)가 실패율이다. answer에 추가하고 나면 남아있는 멤버의 수를 줄여주고 다시 반복
  • lambda를 사용해서 answer를 정렬하고 반환

 

코드

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

 

반응형

댓글