๋ฌธ์ ๋งํฌ
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 |