반응형
문제풀이
1. 각 스테이지에 도전 중인 사람의 수를 구합니다.
2. ing[i]를 스테이지 i에 도전 중인 사람의 수라 하면, 스테이지 i에 도달한 사람의 수는 리스트 ing에서 i번째 이상의 요소에 도전 중인 사람의 합, 즉, sum(ing[i:])가 됩니다.
예) 총 6 단계라 하면, 5단계에 도달한 사람의 수는 5단계에 도전중인 사람 수+6단계에 도전중인 사람 수+7단계에 도전중인 사람 수(마지막 단계인 6단계를 클리어한 사람 수)입니다.
3. 스테이지 i의 실패율은 (i단계에 도전중인 사람 수)/(스테이지 i 이상에 도전중인 사람 수)가 됩니다. (ing[i]/sum(ing[i:]))
Python code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
|
#https://programmers.co.kr/learn/courses/30/lessons/42889#
from collections import Counter
def solution(N, stages):
tot=len(stages)
c=Counter(stages)
# stage i에 도전중인 사람 수
ing = [c[i] if i in c else 0 for i in range(N+2)]
#실패율
f_rate = {}
for i in range(N+1) :
# i 단계의 실패율 : i 단계에 도전중인 사람 수 / i 단계 이상에 도전 중인 사람 수
f_rate[i] = ing[i]/sum(ing[i:]) if sum(ing[i:])>0 else 0
return sorted([i for i in range(1,N+1)], key=lambda x : f_rate[x], reverse=True)
|
cs |
코딩테스트 연습 - 실패율
실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스
programmers.co.kr
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 행렬 테두리 회전하기 Python (0) | 2021.09.16 |
---|---|
[프로그래머스] 위클리 챌린지 4주차 (0) | 2021.08.25 |
[프로그래머스] 위클리 챌린지 2주차 python (0) | 2021.08.21 |
[프로그래머스] 오픈채팅방 Python (0) | 2021.07.02 |
[프로그래머스 ] 예산 Python (0) | 2021.04.29 |