728x90
def solution(N, stages):
userLen = len(stages)
failRateArr = {}
for i in range(1,N+1) :
if userLen == 0 :
failRateArr[i] =0
else :
failRateArr[i] = stages.count(i) / userLen
userLen -= stages.count(i)
failRateArr= sorted(failRateArr, key=lambda x : failRateArr[x], reverse=True)
#answer = sorted(failRateArr, key=failRateArr.get, reverse=True)
return failRateArr
🐵문제풀이과정🐵
1. 전체 스테이지 개수 = N
2. 게임을 이용하는 사용자가 현재 멈춰있는 스테이지의 번호가 담긴 배열 = stages
3. 실패율 = 스테이지에 도달했고, 아직 클리어 하지 못한 플레이어 수 / 스테이지에 도달한 플레이어 수
4. 실패율이 높은 스테이지부터 내림차순으로 스테이지의 번호가 담겨있는 배열 Return
✔️1번 (i번) 스테이지 실패율 :
8명 중 1번에 머물러 있는 사람 수 = 1명 (stages.count(i)명)
실패율 = 1/8
stages.count(i) / 플레이어수
✔️2번 스테이지 실패율:
1번에서 나온 사람수 제외한 플레이어 수 중에
2번에 머물러 있는 사람 수 = 3명 (stags.count(i)명)
실패율 = stages.count(i) / 남은플레이어수
✔️3번 스테이지 실패율 : ....
....
처음에 풀었을 때는, 런타임 오류가 떴다.🥲
그 이유는 실패율을 구할 때, 분모가 0인 경우를 고려를 안했기 때문!
(나도 인터넷에 찾아보았다ㅠ )
If 문으로 플레이어수가 0이면 0값으로 넣어주는 로직 추가!
'알고리즘 (JAVA) > 프로그래머스 알고리즘' 카테고리의 다른 글
[코테준비 - python] 키패드 누르기 level1 - 개발자 배찌 (0) | 2022.12.03 |
---|---|
[코테준비 - python] 이상한 문자 만들기 level1 - 개발자 배찌 (0) | 2022.12.03 |
[프로그래머스] level1. 정수 제곱근 판별 - 개발자 배찌 (0) | 2022.05.12 |
[프로그래머스] level1.자연수 뒤집어 배열로 만들기 - 개발자 배찌 (0) | 2022.05.12 |
[프로그래머스] level1.같은 숫자는 싫어 - 개발자 배찌 (0) | 2022.05.12 |