본문 바로가기
알고리즘/프로그래머스

[Python] 실패율

by 컴공맨 2021. 3. 6.
 

코딩테스트 연습 - 실패율

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

programmers.co.kr


풀이

우선 입력받은 stages를 오름차순 정렬하여 각 스테이지(i)마다 클리어하지 못한 사람을 구해서 실패율을 구했습니다.

그 다음으로 클리어하지 못한 사람의 수를 총 플레이어의 수에서 빼어 다음 스테이지에서의 실패율을 구하게했습니다.

마지막으로 sorted를 사용하여 실패율과 해당 스테이지가 저장된 dict 자료형인 rate를 문제에서 요구하는대로 내림차순으로 정렬하고 list 자료형인 answer에 저장하게하여 rate의 key값으로 저장되있던 스테이지 번호를 저장하게하여 해결했습니다.


코드

def solution(N, stages):
    answer = []

    stages.sort()

    idx = 0
    total_player = len(stages)
    rate = {}

    for i in range(1, N + 1):
        if total_player <= 0:
            rate[i] = 0
        else:
            cnt = 0

            while idx < len(stages) and i == stages[idx]:
                cnt += 1
                idx += 1

            rate[i] = cnt / total_player
            total_player -= cnt

    answer = sorted(rate, key=lambda x: rate[x], reverse=True)

    return answer

 

pyo7410/Algorithm

1일 1커밋을 목표로! Contribute to pyo7410/Algorithm development by creating an account on GitHub.

github.com

 

'알고리즘 > 프로그래머스' 카테고리의 다른 글

[Python] 문자열 압축  (0) 2021.03.14
[Python] 다트 게임  (0) 2021.03.07
[Python] 비밀지도  (0) 2021.02.28
[Python] 키패드 누르기  (0) 2021.02.27
[Python] 2016년  (0) 2021.02.21