ye0nn
영차영차
ye0nn
전체 방문자
오늘
어제
  • 분류 전체보기 (61)
    • CS (0)
      • 운영체제 (0)
      • 네트워크 (0)
      • 알고리즘 & 자료구조 (0)
    • 코딩테스트 (48)
      • 프로그래머스 (40)
      • 백준 (8)
    • 프로그래밍 (11)
      • 프론트엔드 (3)
      • 자바스크립트 (0)
      • 스위프트 (7)
      • 파이썬 (1)
    • 취준기록 (1)

인기 글

블로그 메뉴

  • 홈
  • 태그
  • 방명록

티스토리

hELLO · Designed By 정상우.
ye0nn

영차영차

[프로그래머스] Level 2 - 다리를 지나는 트럭 (Python)
코딩테스트/프로그래머스

[프로그래머스] Level 2 - 다리를 지나는 트럭 (Python)

2022. 6. 22. 20:13

 

 

 

 

https://programmers.co.kr/learn/courses/30/lessons/42583

 

코딩테스트 연습 - 다리를 지나는 트럭

트럭 여러 대가 강을 가로지르는 일차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 다리에는 트럭이 최대 bridge_length대 올라갈

programmers.co.kr

 

 

 

 

✅ Solution

  • [0] * bridge_length로 bridge 배열을 만들어준다.
  • bridge 배열의 길이가 0보다 클 때,
    • 맨 앞의 요소를 bridge배열에서 popleft(), total_weight에서 빼주고 answer에 1을 더해준다.
    • 위 과정은 맨 앞의 요소를 빼주면서 한 칸씩 앞으로 전진시키는 것
  • 대기 트럭이 있고 (해당 트럭의 무게 + total_weight)가 weight 보다
    • 작을 때, 대기 트럭 맨 앞의 요소를 bridge의 맨 뒤에 넣어주고 total_weight에 트럭의 무게를 더해준다.
    • 클 때, 맨 뒤에 0을 넣어준다.

 

 

 

 

✅ Code

from collections import deque

def solution(bridge_length, weight, truck_weights):
    answer = 0
    total_weight = 0
    bridge = deque([0] * bridge_length)
    truck_weights = deque(truck_weights)

    while bridge:
        answer += 1
        total_weight -= bridge.popleft()

        if truck_weights:
            if truck_weights[0] + total_weight <= weight:
                total_weight += truck_weights[0]
                bridge.append(truck_weights.popleft())
            else:
                bridge.append(0)

    return answer

 

 

 

 

저작자표시 (새창열림)

'코딩테스트 > 프로그래머스' 카테고리의 다른 글

[프로그래머스] Level 2 - 피로도 (Python)  (0) 2022.06.23
[프로그래머스] Level 2 - 2개 이하로 다른 비트 (Python)  (0) 2022.06.23
[프로그래머스] Level 2 - 위장 (Python)  (0) 2022.06.09
[프로그래머스] Level 2 - 게임 맵 최단거리 (Python)  (0) 2022.06.09
[프로그래머스] Level 2 - 배달 (Python)  (0) 2022.06.09
    '코딩테스트/프로그래머스' 카테고리의 다른 글
    • [프로그래머스] Level 2 - 피로도 (Python)
    • [프로그래머스] Level 2 - 2개 이하로 다른 비트 (Python)
    • [프로그래머스] Level 2 - 위장 (Python)
    • [프로그래머스] Level 2 - 게임 맵 최단거리 (Python)
    ye0nn
    ye0nn
    프론트엔드 개발자의 개발기록

    티스토리툴바