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
처음에 나는 bridge_length 길이를 가지는 리스트를 만들어놓고, 한번씩 실제로 truck들을 움직이는 시뮬레이션으로 구현했다. 하지만 그렇게하니 답이 1 차이로 맞는 것도 있고 틀리는 것도 있었다.
이 풀이는 q를 이용해서 bridge를 만드는데, 매 턴마다 q.pop(0)를 이용해서 맨 앞에 것을 지워줌으로서 상대적으로 모든 차가 한칸씩 앞으로 간 효과를 낸다. 그리고 들어올 수 있는 차가 있으면 차를 넣어서 길이를 유지하고, 그렇지 않으면 0을 넣어서 길이를 유지한다.