문제 

 

코딩테스트 연습 - 실패율

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

programmers.co.kr

2019 KAKAO BLIND RECRUITMENT 출제 문제이다.

뭔소린가 싶은데 문제에 친절하게 실패율 공식도 적혀있고 입출력 설명도 자세해서 그대로 짜면 된다.

 

  • 실패율은 다음과 같이 정의한다.
    • 스테이지에 도달했으나 아직 클리어하지 못한 플레이어의 수 / 스테이지에 도달한 플레이어 수

 

풀이

def solution(N, stages):
    answer = []
    score = collections.defaultdict(float)

    for i in range(1, N + 1):
        success = 0
        stop = 0
        cur = 0
        for x in stages:
            if x >= i:
                success +=1
            if x == i:
                stop +=1
        if success == 0 or stop == 0:
            score[i] = 0 # 0 나누기 예외처리
        else:
            score[i] = stop/success

    score = sorted(score.items(), key=lambda x: x[1], reverse=True)  # dict v기준 내림차순정렬

    for k in score:
        answer.append(k[0]) 

    return answer

위 입력값(N, stages)으로 실행 후 실패율 내림차순(reverse=True)으로 딕셔너리를 정렬했다.

(오름차순은 따로 지정안해줘도 됨~~~)

score 딕셔너리 정렬전/후, answer 리스트 출력

끝!

반응형

+ Recent posts