[백준 GOLD4] - 11509 풍선맞추기.JS

김영덕·2023년 8월 29일
0
post-thumbnail

시행착오


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

profile
CodeMonkey탈출기

0개의 댓글