[프로그래머스/파이썬] 스택/큐 다리를 지나는 트럭

bye9·2021년 2월 14일
0

알고리즘(코테)

목록 보기
59/130

https://programmers.co.kr/learn/courses/30/lessons/42583


알고리즘 분류

  • 스택/큐

문제풀이

다리길이만큼의 리스트를 생성해준다.

1초가 지날 때마다 스택을 한 칸씩 왼쪽으로 미뤄준다.

이때 이미 다리에 올라간 트럭의 무게와 다음에 올라갈 트럭의 무게 합이 다리가 수용한 무게라면 스택에 추가해준다.
그렇지 않다면 0을 추가해 밀어낸다.

예제 #1.
[0,0], [0,7], [7,0], [0,4], [4,5], [5,0], [0,6], [6,0], [0,0]

소스코드

def solution(bridge_length, weight, truck_weights):
    stack=[0]*bridge_length
    cnt=0
    while stack:
        stack.pop(0)
        cnt+=1
        if truck_weights:
            if (sum(stack)+truck_weights[0])<=weight:
                stack.append(truck_weights.pop(0))
            else:
                stack.append(0)
    return cnt

0개의 댓글