프로그래머스 - 다리를 지나는 트럭

타마타마·2024년 8월 21일
0

💡문제 분석 요약
1. Queue 사용
2. 정해진 순으로
3. 다리에는 트럭이 최대 bridge_length대 올라갈 수 있다.
4. 다리는 weight 이하까지의 무게를 견딜 수 있습니다.
5. 다리에 완전히 오르지 않은 트럭의 무게는 무시합니다.

💡알고리즘 설계
1. 리스트로 설계
2. 1초가 지나면 빠지기 때문에 1을 미리 빼주기
3. sum(bridge) + truck <= weight 하면 추가
4. 아니면 0으로 설계

N만큼 queue에 요소 삽입
K번째인지 체크 후 삭제 및 삽입
큐의 마지막인 경우 다시 처음으로 돌아갈 것
💡코드

	def solution(bridge_length, weight, truck_weights):
    time = 0
    bridge = [0] * bridge_length
    
    while len(truck_weights)!=0:
        time+=1
        
        bridge.pop(0)

        
        #5번 고려할 것
        if sum(bridge) + truck_weights[0] <= weight:
            bridge.append(truck_weights.pop(0))
        else: 
            bridge.append(0)
            
   
    time += bridge_length
    
    return time

💡시간복잡도
O(N)

💡 틀린 이유
리스트로 구현하긴 했는데, 다른 사람들의 풀이를 보니 deque로 할 수 있을 듯 하다.
💡 틀린 부분 수정 or 다른 풀이
deque로 구현해볼 것
💡 느낀점 or 기억할정보
큐로 구현할 수 있는 것들은 리스트로 구현할 생각 말고 deque로 구현할 생각을 해보자 ..

0개의 댓글