[프로그래머스/Python] 스택/큐 - 다리를 지나는 트럭

Sujin Lee·2022년 4월 27일
0

코딩테스트

목록 보기
28/172
post-thumbnail

👩🏻‍🏫 풀이

def solution(bridge_length, weight, truck_weights):
    answer = 0
    q = [0] * bridge_length
    while q:
        answer += 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 answer
  • 트럭이 다리를 지나는 과정을 answer+=1을 통해 경과시간 계산
    • q 리스트 안 (즉 다리 위에 있느 트럭의 총 무게)과 다음 대기열에 있는 트럭 무게가 다리가 감당할 수 있는 총 무게 (weight) 을 넘지 않는 조건을 만족하면 다음 트럭을 리스트에 추가한다
    • 만족을 하지 못한다면 0을 추가하여 다리의 길이를 유지
    • 트럭의 대기열의 길이가 0이 되면 내부 반복문 종료
    • q 리스트의 길이가 0이 되면 반복문 종료후 경과시간 (answer) 리턴

2022.10.12 풀이

  • sum은 시간초과
def solution(bridge_length, weight, truck_weights):
    answer = 0
    q = [0] * bridge_length
    bridge_weight = 0
    while q:
        answer +=  1
        bridge_weight -= q.pop(0)
        if truck_weights:
            if bridge_weight + truck_weights[0] <= weight:
                bridge_weight += truck_weights[0]
                q.append(truck_weights.pop(0))
            else:
                q.append(0)  
    return answer
profile
공부한 내용을 기록하는 공간입니다. 📝

0개의 댓글