본문 바로가기

운동하는 개발자/알고리즘, 코딩테스트

programmers [level2] 다리를 지나는 트럭 /알고리즘 프로그래머스

728x90

문제주소 : https://programmers.co.kr/learn/courses/30/lessons/42583

난이도 : Level2

문제
- 트럭 여러 대가 강을 가로지르는 일 차선 다리를 정해진 순으로 건너려 합니다.
모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다.
트럭은
1초에 1만큼 움직이며, 다리 길이는 bridge_length이고 다리는 무게 weight까지 견딥니다.

 

풀이 : 큐로 다리를 구성해놓고 최대 무게를 비교해가며 다음 차량이 들어설 때 최대 무게가 초과한다면 0 push 아니라면 차의 무게 push  루프돌면서 1초씩 카운트 증가시키고 다리 pop

 

답안

def solution(bridge_length, weight, truck_weights):
    
    lBridge = []
    answer = 0    
    nSum = 0
    
    for i in range(bridge_length):
        lBridge.append(0)
        
    while(True):
        answer += 1
        lBridge.pop(0)
        if len(lBridge) == 0:
            break            
        elif len(truck_weights) == 0:
            continue
        if sum(lBridge) + truck_weights[0] < weight:
            lBridge.append(truck_weights[0])
            truck_weights.pop(0)
        else:
            lBridge.append(0)   
    
    return answer        

solution(100, 100, [10, 10, 10, 10, 10, 10, 10, 10, 10, 10])

 

느낀점

더보기

세번째 풀어보는 프로그래머스 문제 
레벨1은 너무 쉬운거같아서 2로하는데 또 2의 첫문제는 너무 어려워서 못풀고 다시 1로가기전 마지막 풀어봤는데
약간 쉬웠다 

한편으론 타임아웃이 나지않을까 걱정했는데 다행히 한방에 올 패스


 

728x90