[백준] 트리 #1068

welchs·2022년 2월 19일
0

알고리즘

목록 보기
38/44
post-thumbnail

후기

삭제되었다는 노드의 표시를 -2로 두고,
삭제된 노드를 부모로 갖는 모든 노드를 삭제시킨다.
그 후에 삭제가 되지 않았으면서 부모가 없는 노드의 갯수를 세서 리턴해주었다.

Node.js 풀이

const fs = require('fs');
const input = fs.readFileSync('/dev/stdin').toString().trim().split('\n');

const N = Number(input[0]);
const data = input[1].split(' ').map(Number);
const delNode = Number(input[2]);

const DELETED = -2;
const solution = (N, arr, delNode) => {
  const dfs = (del) => {
    arr[del] = DELETED;
    for (let i = 0; i < N; i++) {
      if (del === arr[i]) dfs(i);
    }
  };
  dfs(delNode);
  return arr.filter((v, idx) => v !== DELETED && !arr.includes(idx)).length;
};

console.log(solution(N, data, delNode));
profile
고수가 되고 싶은 조빱

0개의 댓글