본문 바로가기

프로그래머스 알고리즘 문제/Level 1

프로그래머스 Level 1 - 실패율

내 정답:

 

def solution(N, stages):
    a = []
    for i in range(1, N+1):
        success, tries = 0, 0
        for stage in stages:
            if stage > i:
                success += 1
                tries += 1
            elif stage == i:
                tries += 1
        if tries:
            a.append((success/tries,i))
        else:
            a.append((1, i))
            
    return [i[1] for i in sorted(a)]

 

다른 사람들의 정답:

 

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)