[프로그래머스 | Python] 다리를 지나는 트럭

게으른 완벽주의자·2023년 2월 3일
0

프로그래머스

목록 보기
39/83
post-custom-banner

프로그래머스_다리를 지나는 트럭

문제가 약간 헷갈렸다
트럭 1대가 다리를 모두 건너기 위해서는 bridge_length대 만큼의 시간이 소요되는 것이 아니라 1초가 소요되고, bridge에 올라올 수 있는 트럭의 대수가 bridge_length인 것이다

그래서 bridge_length만큼의 bridge를 만들어주고, 모든 truck이 올라오고(if truck weights) bridge를 모두 지나갈 때까지(if bridge) 시간을 1초씩 추가하면서 연산을 진행한다

bridge_length의 최대가 10,000인데 연산을 계속 진행해서 그런지 테스트5에서 sum(bridge)를 하면 시간초과가 났다
번거롭기는 하지만 sum(bridge)를 따로 변수로 선정해주고, bridge에서 트럭이 내려오고 올라갈 때마다 업데이트를 해주면 된다

def solution(bridge_length, weight, truck_weights):
    answer = 0
    bridge = [0]*bridge_length
    now = sum(bridge)
    
    while bridge:
        tmp = bridge.pop(0)
        now -= tmp
        answer += 1
        
        if truck_weights:
            #if sum(bridge)+truck_weights[0] <= weight:
            if now+truck_weights[0] <= weight:
                tmp = truck_weights.pop(0)
                bridge.append(tmp)
                now += tmp
            else:
                bridge.append(0)
        
    return answer
profile
데이터를 공부하고 있습니다
post-custom-banner

0개의 댓글