다리와 대기 트럭을 Queue로 선언해준다.
대기 트럭은 입력 값에서 가져오고 다리 Queue의 크기를 다리 길이만큼 해주기 위해 초기에 0으로 채워서 초기화 한다.
대기 트럭에서 poll한 트럭을 다리 Queue로 넣어주고 다리 큐에서 poll을 통해 맨 앞의 트럭을 빼준다.
이때 다리를 지나는 트럭의 무게를 계산해서 트럭을 옮겨준다.
그리고 다리에 모든 데이터가 없어지면 종료한다.
import java.util.*
class Solution {
fun solution(bridge_length: Int, weight: Int, truck_weights: IntArray): Int {
var answer = 0
var weightAble = weight
var queue:Queue<Int> = LinkedList()
var truck:Queue<Int> = LinkedList()
for(t in 0.. truck_weights.size-1){
truck.add(truck_weights[t])
}
for(i in 0..bridge_length-1){
queue.add(0)
}
while(!queue.isEmpty()){
if(queue.peek() > 0){
weightAble += queue.peek()
}
queue.poll()
if(!truck.isEmpty()) {
if (weightAble >= truck.peek()) {
weightAble -= truck.peek()
queue.add(truck.poll())
} else {
queue.add(0)
}
}
answer++
}
return answer
}
}
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 힙 : 더 맵게 Java (0) | 2020.09.09 |
---|---|
[프로그래머스] 스택/큐 : 프린터 Kotlin (0) | 2020.09.08 |
[프로그래머스] 스택/큐 : 기능개발 Kotlin (0) | 2020.09.07 |
[프로그래머스] 스택/큐 : 주식가격 Java (0) | 2020.09.07 |
[프로그래머스] 해시 : 베스트앨범 Kotlin (0) | 2020.09.05 |
댓글