본문 바로가기

Programming/Python

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

문제

bridge_length, weight, truck_weights 3개가 주어진다.

트럭은 1초에 1만큼 움직인다.

트럭의 개수와 상관없이 다리 길이만큼의 시간은 무조건 소요된다.

주의할 점은 현재 다리를 건너는 트럭 무게의 합은 다리가 견딜 수 있는 무게보다 작아야 한다.

+ 다리에 완전히 오르지 않은 트럭의 무게는 무시한다.

 

코드

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

다리의 길이만큼 0이 들어있는 bridge라는 리스트를 만든다.

pop과 append를 적절히 활용하여 bridge의 값으로 while문을 돌린다.

if문으로 다리 위의 트럭 무게와 truck_weights 0번 인덱스의 값을 더했을 때 다리의 무게보다 가벼운지 검증한다.

아닐 경우 0을 추가하고 맞을 경우 트럭을 추가한다.

 

참고 링크 : https://jeonzzang.tistory.com/45