[programmers/py] 실패율

승민·2023년 4월 4일

알고리즘

목록 보기
7/171

실패율

https://school.programmers.co.kr/learn/courses/30/lessons/42889

문제 설명

  • 실패율은 다음과 같이 정의한다.
    • 스테이지에 도달했으나 아직 클리어하지 못한 플레이어의 수 / 스테이지에 도달한 플레이어 수
  • 전체 스테이지의 개수 N, 게임을 이용하는 사용자가 현재 멈춰있는 스테이지의 번호가 담긴 배열 stages가 매개변수로 주어질 때, 실패율이 높은 스테이지부터 내림차순으로 스테이지의 번호가 담겨있는 배열을 return 하도록 solution 함수를 완성하라

풀이

  • 스테이지를 오름차순 정렬
  • stage에 도달했지만 못푼 사람 수 계산
  • [스테이지, 실패율] 배열로 넣기
def solution(N, stages):
    fail = []
    stages.sort()
    l = len(stages)
    
    for i in range(1, N+1):
        if l == 0:
            fail.append([i, 0])
        else :
            cnt = stages.count(i)
            if cnt == 0:
                fail.append([i, 0])
            else :
                fail.append([i, cnt / l])
            l = l - cnt

    fail.sort(key = lambda x:(-x[1], x[0]))
    return [x[0] for x in fail ]


# 실패율 = 스테이지에 도달 / 스테이지 도달 총 수
# [2,3,4,5] 에서 2스테이지 실패율을 1/4
# 실패율이 높은 스테이지부터 

0개의 댓글