728x90
https://programmers.co.kr/learn/courses/30/lessons/42583?language=javascript
- 다리의 길이 만큼 배열을 만들고 0으로 채워줍니다.
- 배열이 빌때까지 반복문을 돌립니다. 이때
- 다리의 길이가 없어서 못건너간다면 반복문을 탈출하고 바로 정답 0을 리턴합니다.
- 다리의 길이가 있고 지나갈수잇을 확률이 있다면
- 정답 변수를 +1 해줍니다.
- 다리의 현재 올라가있는 트럭의 무게를 파악하기 위해 다리위의 무게의 총합을 구해줍니다.
- 현재 지나가려고 기다리는 트럭이 존재한다면
- 첫번째 지나가려고하는 트럭의 무게와 현재 다리위의 트럭의 무게를 더한것이 다리의 버틸수 있는 무게보다 작거나 같다면
- 트럭을 배열에 넣어숩니다
- 그렇지 않다면
- 0을 배열에 추가하여 다리위에 있는 트럭을 한칸 밀어줍니다.
- 첫번째 지나가려고하는 트럭의 무게와 현재 다리위의 트럭의 무게를 더한것이 다리의 버틸수 있는 무게보다 작거나 같다면
function solution(bridge_length, weight, truck_weights) {
let answer = 0;
const stack = new Array(bridge_length).fill(0)
while (stack.length){
stack.shift();
answer += 1
const sumArray = stack.reduce((acc, curr) => {
return acc + curr
}, 0)
if (truck_weights.length){
if (truck_weights[0] + sumArray <= weight){
stack.push(truck_weights.shift());
} else {
stack.push(0)
}
}
}
return answer;
}
728x90
'알고리즘' 카테고리의 다른 글
[프로그래머스] 기능개발 - javascript (0) | 2022.02.14 |
---|---|
[swjungle 2기] 백준 1535 안녕 (0) | 2021.08.30 |
[swjungle 2기] 그리디 알고리즘 (탐욕법) (0) | 2021.08.28 |
[swjungle 2기] 도둑! 배낭? Knapsack Problem(배낭문제, 냅색) (0) | 2021.08.27 |
[swjungle 2기] 백준 2617 구슬 찾기 (0) | 2021.08.24 |
댓글