테스트 1
입력값 2, 10, [7, 4, 5, 6]
기댓값 8
실행 결과 테스트를 통과하였습니다.
출력 deque([0, 0]) deque([7, 4, 5, 6])
ans 1
cur:0 - b.popleft():0
cur 0
bridge deque([0])
truck in if deque([7, 4, 5, 6])
total_weight 7
poped truck value 7
bridge in if2 deque([0, 7])
update cur 7
ans 2
cur:7 - b.popleft():0
cur 7
bridge deque([7])
truck in if deque([4, 5, 6])
total_weight 11
ans 3
cur:7 - b.popleft():7
cur 0
bridge deque([0])
truck in if deque([4, 5, 6])
total_weight 4
poped truck value 4
bridge in if2 deque([0, 4])
update cur 4
ans 4
cur:4 - b.popleft():0
cur 4
bridge deque([4])
truck in if deque([5, 6])
total_weight 9
poped truck value 5
bridge in if2 deque([4, 5])
update cur 9
ans 5
cur:9 - b.popleft():4
cur 5
bridge deque([5])
truck in if deque([6])
total_weight 11
ans 6
cur:5 - b.popleft():5
cur 0
bridge deque([0])
truck in if deque([6])
total_weight 6
poped truck value 6
bridge in if2 deque([0, 6])
update cur 6
ans 7
cur:6 - b.popleft():0
cur 6
bridge deque([6])
ans 8
cur:6 - b.popleft():6
cur 0
bridge deque([])

 

테스트 디버깅

from collections import deque

def solution(bridge_length, weight, truck_weights):
    bridge = deque([0] * bridge_length)
    truck = deque(truck_weights)
    print(bridge, truck)
    answer = 0
    cur = 0
    
    while bridge:
        answer += 1
        print('ans', answer)
        
        value_b = bridge.popleft()
        print(f'cur:{cur} - b.popleft():{value_b}')
        cur -= value_b
        print('cur', cur)
        print("bridge", bridge)
        
        if truck:
            print('truck in if', truck)
            print('total_weight', cur + truck[0] )
            if cur + truck[0] <= weight:
                t = truck.popleft()
                print('poped truck value', t)
                
                bridge.append(t)
                print('bridge in if2', bridge)
                
                cur += t
                print('update cur', cur)
            else:
                bridge.append(0)

    return answer

+ Recent posts