algorithm'''problem solve
[프로그래머스] 실패율 (카카오, 정렬)
JunHwa Park
2020. 10. 6. 09:12
https://programmers.co.kr/learn/courses/30/lessons/42889?language=python3#
코딩테스트 연습 - 실패율
실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스��
programmers.co.kr
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
def solution(N, stages):
arr = [[] for _ in range(N + 1)]
stages.sort(reverse=True)
stage = N + 1
count = stages.count(N + 1)
index = count
for i in range(N):
stage -= 1
while 0 <= index < len(stages) and stages[index] == stage:
index += 1
if index >0:
arr[stage] = [(index - count) / index, stage]
else:
arr[stage] = [0, stage]
count = index
arr = sorted(arr[1:], key=lambda x: (-x[0], x[1]))
answer = [arr[i][1] for i in range(N)]
return answer
|
cs |
정렬해서 큰 스테이지부터 숫자를 세어가면서 풀면 된다.
다만 주의할 점은, 예를 들어 N = 4, stages = [2]와 같은 값이 나오면 0으로 나누는 경우가 있을 수 있으니, 예외 처리를 해야 한다.