[PRO] 실패율

천호영·2022년 8월 27일
0

알고리즘

목록 보기
48/100
post-thumbnail

문제 그대로 코드를 작성하면 된다. 이때 시간복잡도가 널널해서 이용하지 않았지만 누적합을 한번에 적용시키는 로직을 이용할 수도 있을 것 같다.

def solution(N, stages):
    arrive =  [0] * (N+2) # 도달한 stage
    not_clear = [0] * (N+2) # 현재 못깨고 있는 stage
    
    for player_stage in stages:
        for i in range(1, player_stage+1): # 누적합 한번에 계산하는로직 적용해도 될지도
            arrive[i] += 1 # 도달한 stage 갱신
        not_clear[player_stage] += 1 # 현재 못깨고 있는 stage 갱신
    
    failure = []
    for i in range(1,N+1):
        one_failure = 0 if arrive[i] == 0 else not_clear[i]/arrive[i]
        failure.append((i,one_failure))
    failure.sort(key = lambda x: (-x[1],x[0]))
    
    return [idx for idx, _ in failure]
profile
성장!

0개의 댓글