def solution(bridge_length, weight, truck_weights):
time = 0
q = [0] * bridge_length
while q:
time += 1
q.pop(0)
if truck_weights:
if sum(q) + truck_weights[0] <= weight:
q.append(truck_weights.pop(0))
else:
q.append(0)
return time
전형적인 큐에 관한 문제(FIFO)이므로 [0] 이 bridge_length 만큼 있는 q 리스트 변수를 선언하고 q가 존재하는 동안 while문을 돌려 문제에 나온대로 한 사이클을 돌릴때마다 time에 +1을 해주면 된다. 먼저 q의 맨앞을 pop 해주고 truck_weights의 0번째 인덱스를 현재 q에 있는 무게의 합과 더해서 weight 이하이면 q에 truck_weights[0]을 append 해주고 truck_weights의 첫번째 인덱스를 pop해준다. 만약 weight 이상 이라면 0을 append 해준다.