본문 바로가기
Python/PS in Python

실패율 : 코딩테스트 연습 / Python / Programmers / Level1

by Air’s Big Data 2020. 11. 3.

실패율

문제는 제목 링크에서 확인이 가능하며, 입출력의 예시는 아래와 같다.

N: 스테이지 개수

stages: stage의 길이 (User의 명 수, 각 User가 어느 Stage까지 도달했는지)

 

Stage 
No.
2 1 2 6 2 4 3 3 실패율
1 Clear X Clear Clear Clear Clear Clear Clear 1/8 
(13%)
2 X - X Clear X Clear Clear Clear 3/7
(43%)
3 - - - Clear - Clear X X 2/4
(50%)
4 - - - Clear - X - - 1/2
(50%)
5 - - - Clear - - - - 0/1
(0%)
N+1       마지막 스테이지까지 클리어          

스테지 실패율 높은 순 : (실패율이 같은 스테이지가 있다면 작은 번호의 스테이지가 먼저)

    Stage 3 → Stage 4   Stage 2  Stage1  Stage5

 

Example: 

#INPUT1
N = 5, stages = [2, 1, 2, 6, 2, 4, 3, 3]
#OUPUT1
[3,4,2,1,5]


#INPUT2
N = 4, stages = [4,4,4,4,4]
#OUPUT2
[4,1,2,3]

 

 

 

Solution: 

def solution(N, stages):
    fail = {}
    for i in range(1,N+1):
        try:
            fail_ = len([a for a in stages if a==i])/len([a for a in stages if a>=i])
        except:
            fail_ = 0
        fail[i]=fail_
    answer = sorted(fail, key=fail.get, reverse=True)
    return answer

댓글