본문 바로가기

알고리즘/백준

10159. 저울

문제에서 그래프를 한쪽 방향으로 그리게끔 유도.

모든 점에서 모든 점을 방문해야 비교결과를 알 수없는 물건 도출 가능 -> 플로이드 와샬을 유추 가능

자기 자신과 비교 안함 -> 마지막에 -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