Level 1. 실패율

16. 실패율

코딩테스트 연습 > 2019 KAKAO BLIND RECRUITMENT > 실패율
https://programmers.co.kr/learn/courses/30/lessons/42889

문제 정리

실패율 = 스테이지에 도달했으나 아직 클리어하지 못한 플레이어의 수 / 스테이지에 도달한 플레이어의 수

전체 스테이지의 개수 N, 게임을 이용하는 사용자가 현재 멈춰있는 스테이지의 번호가 담긴 배열 stages가 매개변수로 주어질 때,

실패율이 높은 스테이지부터 내림차순으로 스테이지의 번호가 담겨있는 배열을 return 하도록 solution 함수를 완성하라.

Input value = N, stages

제한 조건

ㆍ스테이지의 개수 N은 1 이상 500 이하의 자연수이다.

ㆍstages의 길이는 1 이상 200,000 이하이다.

ㆍstages에는 1 이상 N + 1 이하의 자연수가 담겨있다.

  • 각 자연수는 사용자가 현재 도전 중인 스테이지의 번호를 나타낸다.

  • 단, N + 1 은 마지막 스테이지(N 번째 스테이지) 까지 클리어 한 사용자를 나타낸다.

ㆍ만약 실패율이 같은 스테이지가 있다면 작은 번호의 스테이지가 먼저 오도록 하면 된다.

ㆍ스테이지에 도달한 유저가 없는 경우 해당 스테이지의 실패율은 0 으로 정의한다.

풀이 방법

def solution(N,stage):
    people = len(stage)
    result = {}
    for i in range(1,N+1):
        if people != 0:
            result[i] = stage.count(i)/people
            people -= stage.count(i)
        else:
            result[i] = 0
    return(sorted(result, key=lambda i: result[i],reverse=True))

# Code test
N, stage = 5, [2, 1, 2, 6, 2, 4, 3, 3]
solution(N,stage)

좋은 웹페이지 즐겨찾기