국문과 유목민

[정렬] 실패율 본문

알고리즘_코딩테스트/이것이 코딩테스트다

[정렬] 실패율

논곰 2021. 12. 17. 00:29
"이것이 코딩테스트다(나동빈 저)"에서 나온 문제에 대한 코드를 다루고 있습니다.
문제에 대한 구체적인 설명과 조건 등은 책을 참고해주시기 바랍니다.

소요시간: 15분

1. 문제 설명

- 게임을 개발하는데 각 스테이지 별로 실패율을 구하고자 한다. 실패율이 높은 순서대로 스테이지 번호를 출력하는 문제

2. 접근 방식

- 스테이지를 순서대로 정렬하고, 스테이지에 해당하는 실패율을 같이 가져가면서 마지막에 정렬해서 출력한다.

3. 코드

def solution(N, stages):
    answer = []
    stages.sort()
    total = len(stages)
    for i in range(1, N+1):
        if stages.count(i) == 0:
            answer.append((i, 0))
        else:
            players = stages.count(i)
            answer.append((i, players/total))
            total -= players
    answer.sort(key=lambda x: (-x[1], x[0]))
    return list(map(lambda x: x[0], answer))

4. 코멘트

- 예전에 풀었던 문제였는데, 그때는 1시간도 넘고 해답보고 그랬었던 것으로 기억하는데 지금은 비교적 쉽게 풀었던 것 같아서 나름 뿌듯하다.