반응형
리뷰
덱을 사용하여 풀어주었다.
문제 풀이
- 덱을 임포트 해주고 각 인자를 받아준다.
- 트럭의 무게 리스트를 덱으로 변환해주고 현재 다리 상황을 나타낼 덱도 초기화 해준다.
- 시간을 참조할 변수도 0으로 초기화 해준다.
- 루프가 실행될때 time을 1올려주고 다리 위에 차가 있다면 머무를 시간을 1씩 감소시킨다.
- 만약 다리위의 첫번째 차의 시간이 0이 되었을 경우 덱에서 없애준다.
- 현재 다리 위 차들의 전체 무게를 계산하고 새로운 트럭이 들어와도 된다면 트럭을 다리에 넣어준다.
- 트럭이 모두 다리를 지나갔을 경우 루프를 종료시킨 후 time을 출력해 준다.
참고 사항
인덱스 에러가 나지 않도록 적절히 조건을 적용해 주자
정답 코드
def q13335():
# 백준 13335번 트럭 파이썬
from collections import deque
n, w, l = map(int, input().split())
lst = deque(list(map(int, input().split())))
bridge = deque()
time = 0
while lst or bridge:
time += 1
if bridge:
for i in range(len(bridge)):
bridge[i][0] -= 1
if bridge[0][0] == 0:
bridge.popleft()
weight = sum(map(lambda x: x[1], bridge))
if lst:
if weight + lst[0] <= l:
bridge.append([w, lst.popleft()])
print(time)
q13335()
728x90
반응형
'알고리즘 공부 > 파이썬(Python)' 카테고리의 다른 글
백준 31883번 FA수의 진 파이썬 (0) | 2024.07.09 |
---|---|
SWEA 1220번 D3 [S/W 문제해결 기본] 5일차 - Magnetic 파이썬 (0) | 2024.07.08 |
백준 10799번 쇠막대기 파이썬 (0) | 2024.07.07 |
백준 1550번 16진수 파이썬 (0) | 2024.07.07 |
백준 17413번 단어 뒤집기 2 파이썬 (0) | 2024.07.07 |