728x90
문제
https://school.programmers.co.kr/learn/courses/30/lessons/42583
코드
from collections import deque
def solution(bridge_length, weight, truck_weights):
bridge = deque([0]*bridge_length)
time = 0
total_weight = 0
while bridge:
total_weight -= bridge.popleft()
if truck_weights:
if total_weight + truck_weights[0] <= weight:
total_weight += truck_weights[0]
bridge.append(truck_weights.pop(0))
else:
bridge.append(0)
time+=1
return time
다른 사람 코드
2
접근법
- 큐를 사용하여 다리를 모델링합니다.
- 다음과 같은 과정을 반복하면서 시간을 체크합니다
- 다리를 건너는 트럭의 무게를 확인하여 다리의 무게를 초과하지 않도록 합니다.
- 다리의 맨 앞에 있는 트럭을 큐에서 빼고, 새로운 트럭을 큐에 넣습니다
- 건넌 트럭의 개수를 세어가며 전체 트럭의 개수와 비교하여 종료 여부를 판단합니다.
배운 점