티스토리 뷰

🖥 문제

트럭 여러 대가 강을 가로지르는 일 차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 트럭은 1초에 1만큼 움직이며, 다리 길이는 bridge_length이고 다리는 무게 weight까지 견딥니다.
solution 함수의 매개변수로 다리 길이 bridge_length, 다리가 견딜 수 있는 무게 weight, 트럭 별 무게 truck_weights가 주어집니다. 이때 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 return 하도록 solution 함수를 완성하세요.

🤔 풀이 방법

  1. 변수
    • truck: Int : 대기 트럭이 담긴 큐
    • bridge: [Int] : 다리 길이의 배열
    • arrived: [Int] : 다리를 지난 트럭
    • weightSum: Int : 다리를 지나고 있는 트럭의 총 무게
    • time: Int : 경과 시간

👩🏻‍💻 Swift Code

import Foundation

func solution(_ bridge_length:Int, _ weight:Int, _ truck_weights:[Int]) -> Int {
    var truck = truck_weights
    var bridge: [Int] = Array(repeating: 0, count: bridge_length)
    var arrived: [Int] = []
    var weightSum = 0
    var time = 0


    while true {
        if arrived == truck_weights { break }

        time += 1

        if bridge.first! != 0 {
            arrived.append(bridge.first!)
        }

        weightSum -= bridge.first!
        bridge.removeFirst()

        if truck != [] && weightSum + truck.first! <= weight {
            weightSum += truck.first!
            bridge.append(truck.first!)
            truck.removeFirst()
        } else {
            bridge.append(0)
        }

    }

    return time
}

 

 

 

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

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

programmers.co.kr

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함