undefined
[프로그래머스] 다리를 지나는 트럭 -자바스크립트 본문
반응형
문제 설명

다리에서 들어오고 나갈때 카운트 해야함
다리의 배열 요소의 합 + 현재 대기 트럭무게의 합이 weight를 넘어서면 안됨
문제 풀이
function solution(bridge_length, weight, truck_weights) {
const bridge = new Array(bridge_length).fill(0)
let count = 0
while(bridge.length) {
count++
bridge.shift()
if(truck_weights.length) {
const nowWeight = bridge.reduce((sum,cur)=>sum+cur,0)
if(nowWeight+truck_weights[0] <= weight) {
bridge.push(truck_weights.shift())
} else {
bridge.push(0)
}
}
}
return count
}
1. 다리의 길이만큼 0으로 채운 배열인 bridge생성
2. 대기 트럭이 없는 상태이지만 다리에 트럭이 있을 경우를 대비하여 bridge의 길이기준으로 while 루프 실행
3. bridge에 shift해주고 count++ (bridge의 처음 요소가 없어진다는 것 === 다리를 나가거나 다리에 들어오는 상태 )
4. 대기 트럭이 있을 때 (다리 배열의 합 + 대기트럭배열의 처음요소)가 다리무게제한보다 작거나 같다면 해당 트럭을 대기트럭배열에서 빼주고 다리 배열에 넣어준다.
=>다리에 들어오는 상태
5. 다리무게제한을 초과한다면 다리배열에 0을 푸시한다 (ex)[7,0]의 상태가됨 => 다음 루프 때 7이 나가고 count가 1증가됨 )
=>다리에서 빠져나가는 상태
배운 점
반응형
'Coding Test' 카테고리의 다른 글
[백준] 11728 배열 합치기 - Node/Js (0) | 2022.07.29 |
---|---|
[프로그래머스] JadenCase - 자바스크립트 (0) | 2022.07.13 |
[프로그래머스] 가장 큰 수 -JS (0) | 2022.07.09 |
[프로그래머스] 프린터 -JS (0) | 2022.07.08 |
[프로그래머스] 타겟 넘버 -JS (0) | 2022.07.07 |