다리를 지나는 트럭

시간 초과가 걸린 코드

def solution(bridge_length, weight, truck_weights):
    
    total=[0]*bridge_length
    
    answer=0
    while total:
        answer+=1
        total.pop(0)
        
        if truck_weights:
            if sum(total)+truck_weights[0]<=weight:
                total.append(truck_weights.pop(0))
            else:
                total.append(0)      
    return answer

sum()을 사용하지 않고서 재시도한 코드

def solution(bridge_length, weight, truck_weights):
    
    total=[0]*bridge_length
    answer = 0
    summ=0
    
    while total:
        chk=total.pop(0)
        if chk!=0:
            summ-=chk
        answer+=1
        
        if truck_weights:
            if summ+truck_weights[0]<=weight:
                total.append(truck_weights.pop(0))
                summ+=total[-1]
            else:
                total.append(0)
    
    return answer

다리 위의 무게를 측정하는 summ 변수를 추가했다.

트럭이 들어오는 순간에는 더해주고, 트럭이 나가는 경우에는(pop되는 chk값이 0이 아닐 때) 빼주며 계산.

좋은 웹페이지 즐겨찾기