알고리즘/프로그래머스

[Kotlin] 다리를 지나는 트럭

hongeeii 2024. 1. 17.
728x90
반응형

 

import java.util.*

class Solution {
    fun solution(bridge_length: Int, weight: Int, truck_weights: IntArray): Int {
        var answer = 0

        var totalWeight = 0 // 다리 위에 있는 트럭의 무게
        
        val truckQueue = LinkedList<Int>(truck_weights.toList())
        val bridgeQueue = LinkedList<Int>(IntArray(bridge_length) { 0 }.toList())

        while (true) {
            if (truckQueue.isEmpty() && totalWeight == 0) break

            totalWeight -= bridgeQueue.pop()
            
            if (truckQueue.isNotEmpty() && totalWeight + truckQueue.peek() <= weight) {
                val truck = truckQueue.pop()
                bridgeQueue.add(truck)
                totalWeight += truck
            } else {
                bridgeQueue.add(0)
            }

            answer++
        }

        return answer
    }

}
728x90
반응형

'알고리즘 > 프로그래머스' 카테고리의 다른 글

[Kotlin] 튜플  (0) 2024.01.17
[Kotlin] 의상  (1) 2024.01.08
[2단계] N개의 최소공배수  (0) 2023.12.19
[2단계] 가장 큰 수  (0) 2023.12.05
[2단계] KAKAO BLINE RECRUITMENT - 캐시  (0) 2023.12.04

추천 글