코딩테스트/[PG] 문제 풀이
[프로그래머스] 2019 KAKAO - 실패율
_JAEJAE_
2021. 9. 3. 22:41
https://programmers.co.kr/learn/courses/30/lessons/42889
코딩테스트 연습 - 실패율
실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스
programmers.co.kr
[풀이 과정]
1. total은 전체 인원 수로 정해놓는다.
2. 1부터 N까지 반복문을 돌면서 total이 0이 아니라면 stages에서 count함수를 사용해서 i의 전체 개수를 구한 뒤 total로 나눠 실패율을 구한 뒤 fail 딕셔너리에 저장한다.
3. total에서 i의 개수를 빼서 다음 스테이지에 도달한 인원 수를 업데이트한다.
4. 만약 total이 0이면 fail 딕셔너리에도 0을 넣는다.
5. 반복문이 끝나면 fail 딕셔너리를 value값을 기준으로 내림차순 정렬하여 return한다.
[소스 코드]
def solution(N, stages):
answer = []
fail = {}
total = len(stages)
for i in range(1, N+1):
if(total != 0):
fail[i] = stages.count(i) / total
total -= stages.count(i)
else: fail[i] = 0
answer = sorted(fail, key=lambda x:fail[x], reverse=True)
return answer