알고리즘/프로그래머스

프로그래머스 - (Python)실패율

programmers.co.kr/learn/courses/30/lessons/42889

 

코딩테스트 연습 - 실패율

실패율 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스

programmers.co.kr

 

1. 유형

구현

 

2. 자료구조

딕셔너리

 

3. 풀이

 

각 스테이지에 따른 실패율 구하기

1) {스테이지 : 실패한 횟수} 형식으로 딕셔너리 만들기

2) [실패율, 스테이지] 형식으로 리스트 만들기

3) 실패율 순으로 내림차순, 스테이지 오름차순 정렬

 

코드.

def solution(N, stages):
    answer = []
    dic = {}
    for stage in stages:
        if dic.get(stage):
            dic[stage] += 1
        else:
            dic[stage] = 1
    snum = len(stages)
    list = []
    for i in range(1, N+1):
        if snum!=0 and dic.get(i):
            fail = dic[i]/snum
            list.append([fail, i])
            snum-=dic[i]
        else:
            list.append([0, i])
    list.sort(key= lambda x: (-x[0], x[1]))
    answer = [k[1] for k in list]
    return answer