나의 개발일지

[프로그래머스] Lv.1 실패율 [Python, 파이썬] KAKAO 본문

프로그래머스

[프로그래머스] Lv.1 실패율 [Python, 파이썬] KAKAO

YoonJuHan 2023. 9. 24. 17:38

 

def solution(N, stages):
    answer = []
    t = [0] * (N+1)
    
    for i in stages:
        if i <= N:  # 끝까지 클리어 한 사람 필요없어
            t[i] += 1
    
    fail = []       # [(스테이지, 실패율)] 들어갈 리스트
    x = len(stages) # 유저 수
    
    for i in range(1, len(t)):
        x -= t[i-1]     # i번 스테이지를 도전한 사람 구하기
        if x == 0:      # 모든 사람 구했으면
            fail.append((i, 0)) # 나머지 스테이지 실패율은 0으로
        else:
            fail.append((i, t[i] / x))  # (스테이지, 실패율)을 구해서 추가
    
    # 실패율 기준으로 내림차순 정렬 (실패율 같으면 알아서 스테이지는 오름차순으로 정렬된다.)
    fail.sort(key=lambda x : x[1], reverse=True)    
    
    for i in fail:  # 스테이지만 골라내서 추가
        answer.append(i[0])
    
    return answer
Comments