📌문제
https://programmers.co.kr/learn/courses/30/lessons/42583
🎖️난이도
Level 2
✔️풀이
# sol (시간 초과 에러 해결! ==> len()함수 사용 x, 변수로 대체)
def solution(bridge_length, weight, truck_weights):
sec = 0
on_bridge = [0] * bridge_length
weight_sum = 0 # sum() 시간초과 해결하기 위해 변수 추가
while on_bridge: # 0조차도 다 없어지기 전까지 (빈배열이 아니면) 무한 반복
sec += 1 # 한번 다리(큐)를 조작할 때마다 시간은 1초씩 추가
tmp_pop = on_bridge.pop(0)
weight_sum -= tmp_pop
if truck_weights:
if weight_sum + truck_weights[0] <= weight: # sum...
tmp_truck = truck_weights.pop(0)
on_bridge.append(tmp_truck)
weight_sum += tmp_truck
else:
on_bridge.append(0) # 더 들어갈 수 없으면, 원래대로 0 넣기
return sec
'[ 알고리즘 ] > Stack, Queue' 카테고리의 다른 글
[프로그래머스/C++] 올바른 괄호 (0) | 2022.10.10 |
---|---|
[프로그래머스] 프린터 (0) | 2022.06.29 |
[프로그래머스] 기능개발 (0) | 2022.06.29 |