[프로그래머스-LV2] [실패] 다리를 지나는 트럭

아이엠강욱·2023년 5월 29일
0

코딩테스트

목록 보기
17/23

해당 문제를 확인하시고 싶으면 아래 링크를 통해 확인해주세요!
https://school.programmers.co.kr/learn/courses/30/lessons/42583


문제설명

풀이

from collections import deque

def solution(bridge_length, weight, truck_weights):
    second = 0
    bridge = deque([0] * bridge_length)   # 다리 큐
    truck_weights = deque(truck_weights)   # 대기트럭 큐

    currentBridgeWeight = 0
    while truck_weights:
        second += 1
        currentBridgeWeight -= bridge.popleft()
        
        if currentBridgeWeight + truck_weights[0] <= weight:
            truck = truck_weights.popleft()   # 대기트럭 큐에서 하나의 트럭 뺌
            bridge.append(truck)   # 다리 들어감
            currentBridgeWeight += truck
        else:
            bridge.append(0)
    
    second += bridge_length
    return second

놓친 점

  • 문제를 풀어보니까 sum 메서드를 사용하면 시간초과가 발생하더라. sum 메서드를 안쓰고 어떻게하지를 고민하다가 해결책을 생각 못했다.
    - bridge를 초기 세팅으로 bridge_length만큼 0을 넣어준다.
  • 다리의 무게가 넘어가게 되면 0을 bridge 배열에 넣어주는걸...
profile
블로그 이전했습니다!! https://dev-iamkanguk.tistory.com/ <<- 여기로 오세용!!

0개의 댓글