티스토리 뷰

728x90

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

 

코딩테스트 연습 - 실패율

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

programmers.co.kr

 

  • 해설 :

게임을 개발하는 오렐리가 만든 게임에서 스테이지의 수 N과 사람들이 도달한 스테이지들의 정보를 담고있는 배열 stages가 주어질 때, 각 스테이지의 실패율은 스테이지에 도달하였지만 통과하지 못한 사람들의 비율로 나타낼 수 있다.

이 때, 스테이지별 실패율이 높은 순으로 정렬하여 정답을 출력하면 된다.

 

 

 

  • 풀이 :

각 스테이지별로 한 단계씩 진행하며 현재 체크하는 스테이지보다 높은 스테이지에 도달한 사람의 수를 l로 카운팅하고 그 중, 현재 스테이지와 같은 스테이지에 머물고 있는 사람들의 수를 도달한 사람의 수로 나누어서 실패율을 계산해주었다. 모든 스테이지의 실패율을 answer 배열에 넣고 이를 내림차순으로 정렬하여 반환하였다.

 

 

 

1
2
3
4
5
6
7
8
9
10
11
12
def solution(N, stages):
    answer = {}
    l = len(stages)
    
    for i in range(1,N+1):
        if l != 0:
            c = stages.count(i)
            answer[i] = c/l
            l -= c
        else:
            answer[i] = 0
    return sorted(answer, key = lambda x : answer[x], reverse = True)
cs
320x100
댓글
© 2022 WonSeok, All rights reserved