728x90
반응형
모든 트럭이 조건을 맞추면서 다리를 지나게 한다음 시간을 출력하면 되는 문제다.
보고 이전에 풀었던 백준문제와 똑같다는 생각으로 바로 큐로 접근했다.
다리를 나타내는 큐를 생성하고 시간마다 뒤에서 넣고 앞에서 빼면서 트럭이 모두 없어질때까지 반복했다.
트럭 리스트가 비게되면 반복문을 끝내고 시간 + 큐의 길이 해줬다.
from collections import deque
def solution(bridge_length, weight, truck_weights):
# bridge_length 최대 다리위 트럭 수, weight 하중, truck_weights 트럭별 무게
answer = 0
truck_weights = deque(truck_weights)
queue = deque([0]*bridge_length)
wei = 0
while truck_weights:
answer += 1
wei -= queue.popleft()
if wei + truck_weights[0] <= weight:
wei += truck_weights[0]
queue.append(truck_weights.popleft())
else:
queue.append(0)
answer += len(queue)
return answer
너무 직관적으로 풀어서 효율성에 조금 문제가 있는 느낌이 없지 않아 있지만, 그냥 푼다는 가정하에 굉장히 시간이 짧게 걸린 문제였다.
이 문제를 다시 풀어보면서 큐와 큐를 사용하면서 쓸 수 있는 함수를 다시금 상기시키는 좋은 문제였다.
728x90
반응형
'알고리즘 > python' 카테고리의 다른 글
[프로그래머스] lv3 네트워트_python (1) | 2024.03.29 |
---|---|
[프로그래머스] lv2 땅따먹기_python (0) | 2024.03.28 |
[프로그래머스] lv2 하노이의 탑_python (0) | 2024.03.27 |
[softeer] lv3 순서대로 방문하기_python (2) | 2024.03.25 |
[softeer] lv3 성적평가_python (0) | 2024.03.25 |