[프로그래머스 파이썬] 다리를 지나는 트럭

일단 해볼게·2024년 3월 19일
0

프로그래머스

목록 보기
103/106

https://school.programmers.co.kr/learn/courses/30/lessons/42583

from collections import deque
def solution(bridge_length, weight, truck_weights):
    
    time = 0
    bridge = deque([0] * bridge_length) # 다리 길이만큼 0으로 채운다.
    truck_weights = deque(truck_weights)
    current_weight = 0
    
    while len(truck_weights) != 0:
        time += 1

        current_weight -= bridge.popleft()

        if current_weight + truck_weights[0] <= weight: # 다리가 새로운 트럭을 견딜 수 있다면
            truck = truck_weights.popleft() 

            # 트럭 추가
            current_weight += truck 
            bridge.append(truck)
        else: # 아니면 0을 추가해 다리 길이 유지
            bridge.append(0)
            
    time += bridge_length # 마지막 트럭 시간 추가
    
    return time

리스트로 풀다가 테스트케이스 5번에서 시간초과나서 다른분 답을 참고했다.
다리 길이만큼 0으로 채워서 시간을 측정하는 방법이 인상깊었다.

참고
https://jyeonnyang2.tistory.com/202
https://jie0025.tistory.com/428

profile
시도하고 More Do하는 백엔드 개발자입니다.

0개의 댓글