문제에서 그래프를 한쪽 방향으로 그리게끔 유도.
모든 점에서 모든 점을 방문해야 비교결과를 알 수없는 물건 도출 가능 -> 플로이드 와샬을 유추 가능
자기 자신과 비교 안함 -> 마지막에 -1
const fs = require("fs")
let input = fs.readFileSync("./dev/stdin").toString().trim().split("\n")
let [n, m] = input
const graph = Array.from({ length: +n + 1 }, () =>
Array.from({ length: +n + 1 }, () => 0)
)
const edges = input.slice(2).map((x) => x.split(" ").map((x) => +x))
for ([a, b] of edges) {
graph[a][b] = 1
}
for (let k = 1; k <= n; k++) {
for (let i = 1; i <= n; i++) {
for (let j = 1; j <= n; j++) {
if (graph[i][k] && graph[k][j]) {
graph[i][j] = 1
}
}
}
}
for (let i = 1; i <= n; i++) {
let cnt = 0
for (let j = 1; j <= n; j++) {
if (!graph[i][j] && !graph[j][i]) cnt++
}
console.log(cnt - 1)
}
'알고리즘 > 백준' 카테고리의 다른 글
1826. 연료 채우기 (0) | 2022.03.24 |
---|---|
14500. 테트로미노 (0) | 2022.03.23 |
2638. 치즈 (0) | 2022.03.20 |
13164. 행복 유치원 (0) | 2022.03.20 |
9576. 책 나눠주기 (0) | 2022.03.20 |