풀이 시뮬레이션 문제이다. 시뮬레이션 문제는 순서를 명확하게 이해하고 이를 지켜주는 것이 매우 중요하다. 항상 집중해서 이부분은 확인할 것 Code from collections import deque def solution(bridge_length, weight, truck_weights): answer = 0 t = 0 bridge_in = 0 truck = deque(truck_weights) bridge = deque() while truck or bridge: # 트럭이 남아 있으면 t += 1 # 다리에서 내리기 if bridge: # 다리에 타있으면 먼저 내려 a = bridge.popleft() bridge_in -= a[0] if t - a[1] < bridge_length: #들어온 시간이 아직 덜됐으면 다시 태우기 bridge.appendleft(a) bridge_in += a[0] # 태우기 if truck: tr = truck.popleft() if bridge_in+tr <= weight: # 이미 타있는 것과 지금꺼 추가해서 탈 수 있으면 bridge.append((tr, t)) # 다리 탑승 bridge_in += tr else: # 탈수 없으면 truck.appendleft(tr) # 원상 복귀 answer = t return answer Reference 다리를 지나는 트럭