[프로그래머스/파이썬] 실패율(42889) 풀이

업데이트:



문제 정보


풀이

문제

각 스테이지의 실패율을 계산해 실패율 내림차순(같으면 스테이지 번호 오름차순)으로 정렬하는 문제입니다.

코드

def solution(N, stages):
    answer = []
    
    info = [[0,0] for _ in range(N+2)]
    
    for stage in stages:
        for i in range(1,stage+1): info[i][1] += 1
        info[stage][0] += 1

    for i in range(1, N+1):
        try: answer.append((-info[i][0]/info[i][1], i))
        except ZeroDivisionError: answer.append((0, i))
    
    return list(map(lambda x:x[1], sorted(answer)))

print(solution(8, [1,2,3,4,5,6,7]))

설명

각 스테이지 i에 대해:

  • 도달한 플레이어 수
  • 클리어하지 못한 플레이어 수

를 구해 실패율을 계산합니다.

정렬 시에는 실패율 내림차순이 필요하므로 코드에서는 (-실패율, 스테이지) 형태의 튜플로 만들어 정렬합니다.



댓글남기기