LEVEL2/다리를 지나는 트럭

Q·2021년 7월 20일
0

문제 설명



전체 코드

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 해준다.

profile
Data Engineer

0개의 댓글

관련 채용 정보