[プログラマーlv 2]橋を渡るトラックPython


Queue問題です
  • は、各要素の残り時間情報を含むコードを記述することが困難であるため、0として埋め込まれたBridgeを作成し、物理的に(?)トラックは橋を渡ることができる.
  • 2つの
  • Queueを同時に処理するため,2つのpop順序を考慮してこそ,トラップに落ちずに解くことができる.
  • たとえば、

    Queueのpop順序が正しくなければ(最初に橋の上のheadを弾き出さなければ)、橋の上のすべてのトラック(7台)と待機列の中の4台のトラックの合計が10を超えるため、橋に追加されない.そのため、この部分では、時間が1時間遅れることになります.
    ソース:
    def solution(bridge_length, weight, truck_weights):
        bridge=[0]*bridge_length
        time=0
        
        while truck_weights:
            bridge.pop(0)
            if (sum(bridge)+truck_weights[0])>weight:
                bridge.append(0)
            else:
                truck=truck_weights.pop(0)
                bridge.append(truck)
            time+=1
        
        return time+len(bridge)
    5番目のテストケースでは、時間がほぼ合格しました.