[プログラマー]橋を渡るトラック
1218 ワード
質問リンク
https://programmers.co.kr/learn/courses/30/lessons/42583
解答方法
問題を解決するよりも、問題を理解するのに時間がかかった.
まず、待機中のトラック、橋を渡るトラックは行列の形で先進的な順序で離れることができます.私が理解している橋を渡る2つの重要な条件は以下の通りです.
1台の
したがって,この条件に従ってwhile文で1秒ごとに時間をチェックする.その後、on bridge、cart weightsリストが空の場合、重複文を終了し、対応する時間を返します.
コード#コード#
def solution(bridge_length, weight, truck_weights):
sec = 0
on_bridge = []
truck_weights = truck_weights[::-1] # [-1] 요소를 pop 하기 위해 reverse 해서 사용
# 대기 중이거나 다리를 건너는 트럭이 있을 경우
while truck_weights or on_bridge:
sec += 1
# 다리를 건너는 트럭이 있고, 가장 첫 트럭이 다리를 다 건넜다면 pop
if on_bridge and on_bridge[0][1] <= sec:
on_bridge.pop(0)
# 대기 중인 트럭이 있고, 다리 길이 및 무게 조건을 만족했을 경우 append
if truck_weights and len(on_bridge) + 1 <= bridge_length and sum([truck[0] for truck in on_bridge]) + truck_weights[-1] <= weight:
on_bridge.append([truck_weights.pop(), sec + bridge_length])
return sec
Reference
この問題について([プログラマー]橋を渡るトラック), 我々は、より多くの情報をここで見つけました https://velog.io/@wonyuuu/programmers-다리를-지나는-트럭テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol