문제링크  : https://programmers.co.kr/learn/courses/30/lessons/42889

 

코딩테스트 연습 - 실패율

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

programmers.co.kr

 

 

 문제 설명 

 

전체 스테이지의 개수 N, 게임을 이용하는 사용자가 현재 멈춰있는 스테이지의 번호가 담긴 배열 stages가 매개변수로 주어질 때, 실패율이 높은 스테이지부터 내림차순으로 스테이지의 번호가 담겨있는 배열을 return 하는 solution 함수

 

 알고리즘 

 

1. 각 스테이지별 실패율을 구한다.

2. key에 스테이지를 value에 실패율 로 하여 딕셔너리를 만든다.

3. 딕셔너리를 value에 따라 내림차순 정렬한다.

4. return 한다

 

 코드 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
def solution(N, stages):
    answer = []
    dic ={}
    for i in range(1,N+1):
        total = 0
        fail = 0
        for j in stages:
            if j >=i : total+=1
            if j > i : fail +=1
        fail = total - fail
        print(i,fail,total)
        if total ==0 : dic[i]=[0]
        else:
            dic[i] =[fail/total]
    
    dic = dict(sorted(dic.items(), key=lambda x: x[1], reverse=True))
    answer =list(dic.keys())
 
    return answer
 
cs
 

 

 

 

 

ariz1623