링크 : https://www.acmicpc.net/problem/13335
13335번: 트럭
입력 데이터는 표준입력을 사용한다. 입력은 두 줄로 이루어진다. 입력의 첫 번째 줄에는 세 개의 정수 n (1 ≤ n ≤ 1,000) , w (1 ≤ w ≤ 100) and L (10 ≤ L ≤ 1,000)이 주어지는데, n은 다리를 건너는 트
www.acmicpc.net
- 문제
- 소요시간: 20분 32초


- 설계하기(접근방법)
1. 입력받기
트럭 수, 다리 길이, 하중을 입력받는다
2. 구현하기
q를 2개 구현하면 문제를 상당히 쉽게 풀 수 있다
bridge와 truck_order을 덱으로 구현한다
그 후 다리의 하중이 (들어갈 트럭의 무게 + 다리에 있는 트럭들의 무게 합) 을 버틸 수 있다면
다의[-1]번을 새로운 트럭의 무게로 업데이트해준다
만약 아니라면 pass
그 후 다리의 트럭을 왼쪽으로 한칸 이동시켜준다
popleft()와
append(0)으로 구현할 수 있다
마지막으로 다리에 있는 트럭을 모두 이동시킨다
3. 출력하기
걸린 최소 시간을 출력한다
- 코드(출력)
from collections import deque
# 트럭 수 , 다리 길이, 다리 하중
n , l, w = map(int, input().split())
truck_order = deque(list(map(int, input().split())))
bridge = deque([0 for _ in range(l)])
time = 0
#[0,0,3]
while truck_order:
time += 1
bridge.popleft()
bridge.append(0)
# 다음 들어올 트럭의 무게와 현재 다리에 있는 무게의 합 <= 다리 하중
if sum(bridge) + truck_order[0] <= w:
bridge[-1] = truck_order.popleft()
time += len(bridge)
print(time)
- 얻어갈 부분
'알고리즘(백준) > 구현' 카테고리의 다른 글
| [알고리즘/구현] 10773번 : 제로 - python (0) | 2024.05.22 |
|---|---|
| [알고리즘/구현] 11866번 : 요세푸스 문제 0 - python (0) | 2024.05.22 |
| [알고리즘/구현] 1713번 : 후보 추천하기 - python (0) | 2024.03.01 |
| [알고리즘/구현] 17281번 : ⚾ - python (0) | 2024.02.29 |
| [알고리즘/구현] 3190번 : 뱀 - python (0) | 2024.02.27 |