728x90

https://programmers.co.kr/learn/courses/30/lessons/42889

 

코딩테스트 연습 - 실패율

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

programmers.co.kr

def solution(N, stages):
    answer = {}
    cntplayer = len(stages)
    
    # 각 스테이지별 실패율 딕셔너리에 저장
    for i in range(1,N+1):
        if cntplayer != 0:
            answer[i] = stages.count(i) /cntplayer # 실패율
            cntplayer -= stages.count(i)
        else: # 스테이지 도달한 유저 없는 경우 실패율 0
            answer[i] = 0
        
    return sorted(answer,key = lambda x:-answer[x])

풀이

1부터 N까지의 스테이지 도달한 개수를 구하고 그 개수를 계속 제외해서 다음 실패율을 구한다.

구한 실패율을 answer 딕셔너리에 넣고, 

실패율이 큰 순서대로 정렬한다.

+ Recent posts