[백준] - 2668 숫자고르기 (node.js)

밀루·2025년 4월 4일
0

BOJ

목록 보기
79/82

문제링크

코드

const fs = require("fs");
const filePath = process.platform === "linux" ? "/dev/stdin" : "./input.txt";
let [n, ...inputs] = fs
  .readFileSync(filePath)
  .toString()
  .trim()
  .split("\n")
  .map(Number);

inputs.unshift(0);

let visited = new Array(n + 1).fill(0);
let result = [];

const dfs = (i) => {
  if (visited[i] == 1) { // 방문한 걸 다시 방문한 거는 사이클?이 있는 거니까..
    result.push(i);
    return;
  }
  visited[i] = 1;
  dfs(inputs[i]);
};

for (let i = 1; i <= n; i++) {
  dfs(i);
  visited.fill(0); // visited 초기화
}

let r = Array.from(new Set(result));
console.log(r.length);
console.log(r.sort((a, b) => a - b).join("\n"));

DFS인듯 DFS 아닌 DFS로 풀었다. ㅋㅋㅋㅋ 맨처음에 4퍼에서 틀렸습니다가 나왔었는데, 결과 출력에서 정렬을 해주니 맞았다.

profile
이밀루의 도전

0개의 댓글