[프로그래머스] 실패율

yewon Lee·2023년 4월 16일
0

😎코딩테스트 연습>2019 KAKAO BLIND RECRUITMENT>실패율


📘 문제 풀이

  1. 스테이지 1부터 해당 스테이지에 있는 유저/전체 유저의 수(해당 스테이지 이상)로 실패율 계산
  2. 스테이지 번호(k): 실패율(v) 딕셔너리로 정리
  3. value를 기준으로 내림차순 정렬
    sorted(딕셔너리.items(), key = lambda x: x[1], reverse=True)
  4. 키 값만 리스트로 리턴
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을 넣어야 내림차순
profile
시작

0개의 댓글