개발/PS

[Python] 프로그래머스 LV1 실패율

유훈 | Yuhun 2022. 1. 1. 01:48
반응형

풀이

비효율적으로 짰음으로 나중에 다시 해보자(실행 시간이 너무 길다)

def solution(N, stages):
    user = {}
    for i in range(1, N + 1):
        failure = 0
        arrive_stage = 0
        current_fail = 0
        for j in stages:
            if i <= j:
                arrive_stage += 1
                if i == j:
                    current_fail += 1
        if arrive_stage != 0:
            failure = current_fail / arrive_stage
        user[i] = failure
    answer = sorted(user.keys(), key=lambda item: user[item], reverse=True)
    return answer

직관적으로 현재 stage 도착 인원수와 클리어하지 못한 인원수를 구해 '단계:실패율'을 Dictionary에 넣고

이를 실패율을 기준으로 정리해 해결.

테스트는 통과했으나 실행 시간이 너무 길어 개선이 필요한 코드라 생각합니다.

반응형