Koala - 12기/코딩테스트 준비 스터디

[프로그래머스/Python] 실패율

jeonyoungseo 2023. 9. 26. 14:52

풀이

실패율은 (스테이지에 도달하였으나 아직 클리어하지 못한 플레이어 수) / (스테이지에 도달한 플레이어수) 에 해당한다.
각 플레이어들에 대하여 각자 있는 곳들을 ✔️로 표시하고, 그 전 단계까지는 클리어한 것이므로 o로 표시해 나열해보면 아래와 같이 플레이어는 각 단계에 있어서의 ✔️/(✔️+o)에 해당하는 것을 알 수 있다. 

1 o ✔️ o o o o o o ✔️/(✔️+o)
2 ✔️ x ✔️ o ✔️ o o o  
3 x x x o x o ✔️ ✔️  
4 x x x o x ✔️ x x  
5 x x x o x x x x  

코드

def solution(N, stages):
    answer = []
    List1 = [0 for _ in range(N+2)]
    List2 = [0 for _ in range(N+2)]
    List3 = [0 for _ in range(N+2)]
    for i in range(len(stages)):
        List1[stages[i]]+=1
        List2[stages[i]]+=1
    for i in range(N,0,-1):
        List2[i]+=List2[i+1]
    for i in range(1,N+1):
        if List2[i]!=0:
            List3[i]=List1[i]/List2[i]
        answer.append((i, List3[i])) # 여기 실수할 뻔 ㅠㅠㅠㅠ
    answer=sorted(answer, key = lambda x: [-x[1],x[0]])
    # print(answer)
    Ans = []
    for i in answer: Ans.append(i[0])
    return Ans

실수

위의 로직 중 14번째 줄에서 if문 안에 넣어서 실수할 뻔 하였다 ㅠ 

answer.append((i, List3[i])) # 여기 실수할 뻔 ㅠㅠㅠㅠ