[프로그래머스]다리를 지나는 트럭
링크 : 문제 바로가기
def solution(bridge_length, weight, truck_weights):
answer= 0
bridge= [0]*bridge_length
while truck_weights != []:
bridge.pop(0)
if sum(bridge)+truck_weights[0] <= weight:
bridge.append(truck_weights.pop(0))
else:
bridge.append(0)
answer+=1
answer+=bridge_length
return answer
truck_weights에 모든 트럭이 없어질 때까지 while문으로 다리가 견딜 수 있으면 트럭을 올리고 아니면 그냥 계속 밀어내는 식으로 진행하다가 while문이 끝나면, 이는 모든 트럭이 출발을 마쳤고 마지막으로 출발한 트럭만 들어오면 끝이라는 소리이므로 가장 마지막에 출발한 트럭이 들어오려면 다리의 총 길이만큼 초가 필요하므로 마지막에 이 값을 더해준다.
알고리즘 : 스택/큐