[Boj] 13335 - 트럭 (큐, 구현)

돌멩e·2022년 7월 26일
0

알고리즘 뿌수기

목록 보기
12/17

boj 13335

📍 Idea Logic

  1. 큐를 다리라 생각하고 조건문을 이용해서 조건에 해당하면 큐 안에 append
  2. 시간이 지나면 popleft
  3. 고려해야 할 사항이 너무 많아서 생각이 안 그려짐

❗️ ERROR Point

📌 New Arrival

1. deque는 시간복잡도 O(1)로 그냥 큐나 스택보다 훨씬 빠른 속도.

from collections import deque
dq = deque()

2. 함수를 만들어서 짜는 연습을 해보자!

🔑 Solution

import sys
from collections import deque

# total: 트럭 수, length: 다리 길이, weight: 다리 최대하중
total, length, weight = map(int, sys.stdin.readline().split())
trucks = deque(map(int, sys.stdin.readline().split()))

time = 0
# 다리 길이만큼 공간 만들기
bridge = deque([0]*length)

# trucks에 있는 엘리먼트가 없어질 때까지
while trucks:
    bridge.popleft()
    # trucks의 첫 번째 트럭 무게
    first = trucks[0]
    # bridge에 할당된 남은 자리 < 다리 길이 , 다리 위에 놓여진 트럭 무게+지금 트럭무게 <= 다리 최대하중![](https://velog.velcdn.com/images/imjjw1004/post/4bc53a26-ad0f-402e-b7b6-5bbb5380cedf/image.png)

    if len(bridge) < length and sum(bridge) + first <= weight:
        bridge.append(trucks.popleft())
    else:
        bridge.append(0)
    time += 1
print(time + length)

참고자료

profile
돌이 되고 싶어요

0개의 댓글

관련 채용 정보