[문제풀이]
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
|
function solution(bridge_length, weight, truck_weights) {
let onBridge = new Array(bridge_length - 1).fill(0);
onBridge.push(truck_weights.shift());
let count = 1;
while (onBridge.reduce((a, b) => a + b) > 0) {
onBridge.shift();
if (weight - onBridge.reduce((a, b) => a + b) >= truck_weights[0]) {
onBridge.push(truck_weights.shift());
} else {
onBridge.push(0);
}
count++;
}
return count;
}
|
cs |
문제의 입출력 예시만 보고 이해를 한동안 못하고 있다가 문제를 다시 읽고 손으로 경우의 수를 헤아려서 문제를 이해했다. onBridge라는 배열에 0을 채워서 선언하고 마지막 요소에 첫 트럭을 우선 넣는다. 다리에 트럭이 아예 없을 때까지 while을 돌려주고 다리 제일 앞에 있는 요소를 보내고 버틸 수 있는 다리 무게(weight) 다음 truck_weights 보다 높은지 비교한다. 만약 버틸 수 있다면 onBridge 요소에 트럭을 넣고 count를 더하고 그러지 못할 경우 0을 넣고 count를 더하는 식으로 구현했다.
'프로그래머스' 카테고리의 다른 글
6/22[TIL] 프로그래머스 Lv2 카펫 (0) | 2021.06.22 |
---|---|
6/16[문제풀이] 프로그래머스 Lv2 위장 (0) | 2021.06.16 |
6/14[문제풀이] 프로그래머스 Lv2 오픈채팅방 (0) | 2021.06.14 |
6/9[문제풀이] 프로그래머스 Lv2 문자열 압축 (0) | 2021.06.09 |
6/8[문제풀이] 프로그래머스 Lv2 스킬트리 (0) | 2021.06.08 |