😎코딩테스트 연습>2019 KAKAO BLIND RECRUITMENT>실패율
- 스테이지 1부터 해당 스테이지에 있는 유저/전체 유저의 수(해당 스테이지 이상)로 실패율 계산
- 스테이지 번호(k): 실패율(v) 딕셔너리로 정리
- value를 기준으로 내림차순 정렬
sorted(딕셔너리.items(), key = lambda x: x[1], reverse=True)- 키 값만 리스트로 리턴
def solution(N, stages):
answer = []
stageDic = {}
userNum = len(stages)
for n in range(1, N+1):
if userNum != 0:
stageDic[n] = stages.count(n)/userNum
else:
stageDic[n] = 0
userNum = userNum - stages.count(n)
sort_stageDic = dict(sorted(stageDic.items(), key = lambda x: x[1], reverse=True))
return list(sort_stageDic.keys())
*주의*
1,6,7,9,13,23,24,25가 계속 오류가 났는데
이 부분은 스테이지에 도달한 유저가 없을 때
해당 실패율을 0으로 한다는 조건을 실행하지 않았기 때문이다.
else: stageDic[n] = 0 #추가
sorted를 할 때 다시 dict로 변환해주어야 딕셔너리 타입이 된다.
key = lambda x: x[0] -> key 기준
key = lambda x: x[1] -> value 기준
sorted 기본은 오름차순, reverse=True을 넣어야 내림차순