[node.js]백준 10451: 순열 사이클

젼이·2024년 12월 14일
const fs = require('fs');
const path = process.platform === 'linux' ? '/dev/stdin' : 'Wiki\\input.txt';
const inputs = fs.readFileSync(path).toString().trim().split('\n');

let t = Number(inputs[0]);
let front = 1;

while (t) {
  const n = Number(inputs[front++]);
  const numbers = inputs[front++].split(' ').map((it) => Number(it) - 1);

  let visited = Array.from({ length: n }).fill(false);
  let ans = 0;
  const dfs = (cur, start) => {
    const next = numbers[cur];

    if (visited[next]) {
      ans += 1;
      return;
    }
    visited[next] = true;
    dfs(next);
  };

  for (let i = 0; i < n; i++) {
    if (!visited[i]) dfs(i);
  }
  console.log(ans);

  t -= 1;
}
profile
코드도 짜고, 근육도 짜고

0개의 댓글