본문 바로가기

코딩 문제/프로그래머스

[프로그래머스] 실패율 (python)

문제링크

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

 

코딩테스트 연습 - 실패율

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

programmers.co.kr


풀이

# 내풀이
def solution(N, stages):
    stages = np.array(stages)
    d = {}
    for i in range(1,N+1):
        stages = stages[np.where(stages >= i)] 
        try_num = len(stages)
        success = sum(np.where(stages == i,1,0))
        try:
            d[i] = success / try_num
        except:
            d[i] = 0
        
    d = dict(sorted(d.items(), key=lambda x: x[1], reverse=True))
    return list(d.keys())

# 다른 사람 풀이
def solution(N, stages):
    result = {}
    denominator = len(stages)
    for stage in range(1, N+1):
        if denominator != 0:
            count = stages.count(stage)
            result[stage] = count / denominator
            denominator -= count
        else:
            result[stage] = 0
    return sorted(result, key=lambda x : result[x], reverse=True)

피드백

다른사람풀이가 시간 효율이 더 좋음