시행착오
2차원 배열 대각선의합 이용해볼까?
- 문제를 읽고 한칸에 한칸씩 높이가 낮아지는 포물선 운동이라 생각 후 대각선의 합과 Map객체를 이용해서 간단히 화살의 개수를 추출 해 낼 수 있을것이라 판단했다.
- 그러나 맞았을때만 높이가 -1씩 낮아지는 문제였다.
이중 for문을 활용해볼까?
- 시간제한이 2초.
- 두번째 for문에선 자신보다 큰 인덱스만 돌고, 이미 터트린 풍선은 continue로 넘겨주게 설계 할 것이여서 충분히 시간안에 돌것이라고 판단했다.
알게된것
풀이방법
const fs = require('fs');
const filePath = process.platform === 'linux' ? '/dev/stdin' : './input.txt';
let input = fs.readFileSync(filePath).toString().split('\n');
const obj = {
N: +input[0],
arr: input[1].split(' ').map((item) => +item),
};
function solution(obj) {
const {N, arr} = obj;
const check = new Array(N).fill(false);
let cnt = 0;
for (let i = 0; i < N; i++) {
let target = arr[i];
if (check[i] === false) {
check[i] = true;
cnt += 1;
for (let j = i + 1; j < N; j++) {
if (target - 1 === arr[j] && check[j] === false) {
target = target - 1;
check[j] = true;
}
}
} else {
continue;
}
}
console.log(cnt);
}
solution(obj);
출처
https://gent.tistory.com/296