๋ฐฑ์ค€[JS] > 11403๋ฒˆ ๊ฒฝ๋กœ ์ฐพ๊ธฐ

2025. 3. 3. 11:54ยท๐Ÿ”’Algorithm

๋ฌธ์ œ๋งํฌ

https://www.acmicpc.net/problem/11403

ํ’€์ด

๋ฌธ์ œ๋ฅผ ํ’€๊ธด ํ’€์—ˆ๋Š”๋ฐ ํ”Œ๋กœ์ด๋“œ ์™€์ƒฌ์˜ ์ ํ™”์‹์„ ์ด์šฉํ•˜์ง„ ์•Š์•˜๋‹ค. ํ•ด๋‹น ์ ํ™”์‹์„ ์ด์šฉํ•ด์„œ ํ’€๋ฉด ๋” ์งง์€ ์ฝ”๋“œ๋กœ ์ž‘์„ฑ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ๋‚˜๋Š” ํ•˜๋‚˜์˜ ์ ์„ ๋ฐฉ๋ฌธํ•˜๋ฉด์„œ ๊ธฐ์กด graph๋ฅผ ๊ฐฑ์‹ ํ•˜๋Š” ๋ฐฉํ–ฅ์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ’€๊ณ  ์ด๋ฏธ ๋ฐฉ๋ฌธํ•œ ์ ์€ ๋‹ค์‹œ ๋ฐฉ๋ฌธํ•˜์ง€ ์•Š๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ณ„์‚ฐ์„ ์ตœ์ ํ™” ํ•˜์˜€๋‹ค.

let fs = require("fs");
let input = fs.readFileSync("/dev/stdin").toString().trim().split("\n");
let [pointsCnt, ...arr] = input;

let graph = arr.map((str) => {
    return str.split(" ").map((n) => Number(n));
});

// ๋ฐฉํ–ฅ์„ฑ์ด ์กด์žฌํ•˜๋Š” ๊ฐ„์„ 
for (let r = 0; r < graph.length; ++r) {
    visited = [];
    toVisit = [];
    for (let c = 0; c < graph[0].length; ++c) {
        if (graph[r][c] === 1) {
            toVisit.push(c);
            visited.push(c);
        }

        while (toVisit.length) {
            let point = toVisit.shift();
            for (let z = 0; z < graph[0].length; ++z) {
                if (graph[point][z] === 1 && !visited.includes(z)) {
                    graph[r][z] = 1;
                    toVisit.push(z);
                    visited.push(z);
                }
            }
        }
    }
}

let answer = "";
graph.forEach((line) => {
    let str = line.join(" ");
    answer += str + "\n";
});
console.log(answer);

ํ•˜๋‹จ์€ ํ”Œ๋กœ์ด๋“œ ์™€์ƒฌ ์ ํ™”์‹์œผ๋กœ ๋ฌธ์ œ๋ฅผ ํ’€์—ˆ์„ ๊ฒฝ์šฐ์ด๋‹ค.

let fs = require("fs");
let input = fs.readFileSync("/dev/stdin").toString().trim().split("\n");
let [pointsCnt, ...arr] = input;

let graph = arr.map((str) => {
    return str.split(" ").map((n) => Number(n));
});

// ๋ฐฉํ–ฅ์„ฑ์ด ์กด์žฌํ•˜๋Š” ๊ฐ„์„ ์ด๋„ค

for(let k=0; k<graph.length; ++k){
    for(let r=0; r<graph.length; ++r){
        for(let c=0; c<graph[0].length; ++c){        
            if(graph[r][k]&&graph[k][c]){
                 graph[r][c]=1   
            }
        }
    }
}
let answer = "";
graph.forEach((line) => {
    let str = line.join(" ");
    answer += str + "\n";
});
console.log(answer);

'๐Ÿ”’Algorithm' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

๋ฐฑ์ค€[JS] > 20125๋ฒˆ ์ฟ ํ‚ค์˜ ์‹ ์ฒด ์ธก์ •  (0) 2025.03.05
๋ฐฑ์ค€[JS] > 9655๋ฒˆ ๋Œ๊ฒŒ์ž„  (0) 2025.03.05
๋ฐฑ์ค€[JS] > 7568 ๋ฉ์น˜  (0) 2025.03.01
๋ฐฑ์ค€[JS] > 9375๋ฒˆ ํŒจ์…˜์™• ์‹ ํ•ด๋นˆ  (0) 2025.03.01
ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค[JS] > ํƒ๋ฐฐ ์ƒ์ž ๊บผ๋‚ด๊ธฐ  (0) 2025.02.25
'๐Ÿ”’Algorithm' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • ๋ฐฑ์ค€[JS] > 20125๋ฒˆ ์ฟ ํ‚ค์˜ ์‹ ์ฒด ์ธก์ •
  • ๋ฐฑ์ค€[JS] > 9655๋ฒˆ ๋Œ๊ฒŒ์ž„
  • ๋ฐฑ์ค€[JS] > 7568 ๋ฉ์น˜
  • ๋ฐฑ์ค€[JS] > 9375๋ฒˆ ํŒจ์…˜์™• ์‹ ํ•ด๋นˆ
devWarrior
devWarrior
  • devWarrior
    devWarrior
    devWarrior
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ๐ŸงฉDev (263)
      • โญFE (34)
      • ๐Ÿ”’Algorithm (155)
      • โž•Etc. (11)
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ํ™ˆ
    • ํƒœ๊ทธ
    • ๋ฐฉ๋ช…๋ก
    • ๊ธ€์“ฐ๊ธฐ
    • ๊ด€๋ฆฌ
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    ์ฝ”ํ…Œ
    ๋ฐฑ์ค€
    ์˜ค๋ธ”์™„
    ์‹ค๋ฒ„1
    ํ‹ฐ์Šคํ† ๋ฆฌ์ฑŒ๋ฆฐ์ง€
    BFS
    ๊ณจ๋“œ5
    Algorithm
    ์‹ค๋ฒ„2
    javascript
    ๊ตฌํ˜„
    ์•Œ๊ณ ๋ฆฌ์ฆ˜
    ์ž์Šค
    ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค
    dp
    ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ
    leetcode
    ๊ทธ๋ฆฌ๋””
    FE
    Easy
    ์ฝ”๋”ฉํ…Œ์ŠคํŠธ
    js
    ํ”„๋ก ํŠธ์—”๋“œ
    ์‹ค๋ฒ„3
    react
    node.js
    ์‹ค๋ฒ„4
    nodejs
    DFS
    Lv2
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
devWarrior
๋ฐฑ์ค€[JS] > 11403๋ฒˆ ๊ฒฝ๋กœ ์ฐพ๊ธฐ
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”