Haribo ML, AI, MATH, Algorithm

실패율


실패율

코드

def solution(N, stages):
    failure_rate = {}
    total_players = len(stages)
    
    for stage in range(1, N + 1):
        players_at_stage = stages.count(stage)

        if total_players > 0:
            failure_rate[stage] = players_at_stage / total_players
            total_players -= players_at_stage
        else:
            failure_rate[stage] = 0
    # 실패율을 기준으로 내림차순 정렬하되, 실패율이 같을 경우 스테이지 번호가 작은 순으로 정렬
    return sorted(failure_rate, key=lambda x: failure_rate[x], reverse=True)

핵심

  1. failure_rate 딕셔너리를 초기화하여 각 스테이지의 실패율을 저장.
  2. total_players는 stages에 있는 총 플레이어 수.
  3. 1부터 N까지의 각 스테이지에 대해 반복문을 수행.
  4. players_at_stage는 현재 스테이지에 머물러 있는 플레이어 수.
  5. total_players가 0보다 큰 경우, 실패율을 계산하고, 해당 스테이지에서 머물러 있는 플레이어 수만큼 total_players에서 빼기.
  6. total_players가 0이면, 해당 스테이지에 도달한 플레이어가 없으므로 실패율을 0으로 설정.
  7. 마지막으로, 실패율을 기준으로 스테이지 번호들을 내림차순으로 정렬하여 반환.

Similar Posts

이전 포스트 시저 암호

다음 포스트 약수의 합

Comments