본문 바로가기
Problem Solving/프로그래머스

[프로그래머스 programmers] 다리를 지나는 트럭

by ggyongi 2021. 4. 28.
반응형

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

 

코딩테스트 연습 - 다리를 지나는 트럭

트럭 여러 대가 강을 가로지르는 일 차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 트럭은 1초에 1만큼 움직이며, 다리 길이

programmers.co.kr

처음엔 deque없이 pop(0)을 썼다가 시간초과가 떠서 deque를 사용하여 popleft()를 썼다.

import collections
def solution(bridge_length, weight, truck_weights):
    trucks = collections.deque(truck_weights)
    queue = collections.deque([0]*bridge_length)
    t = 0
    cur = 0 # current weight on bridge
    
    while True:
        if not trucks:
            t += bridge_length
            break
        cur -= queue.popleft()
        if cur + trucks[0] <= weight:
            queue.append(trucks.popleft())
            cur += queue[-1]
        else:
            queue.append(0)
        t +=1
    return t
 

비전공자 네카라 신입 취업 노하우

시행착오 끝에 얻어낸 취업 노하우가 모두 담긴 전자책!

kmong.com

댓글