๐ŸŽฒ ๋ฐฑ์ค€ 1956๋ฒˆ ์šด๋™

Jeongeunยท2023๋…„ 12์›” 16์ผ
0

๋ฐฑ์ค€

๋ชฉ๋ก ๋ณด๊ธฐ
145/187

๋ฐฑ์ค€ 1956๋ฒˆ

๐ŸŽจ ์ฐธ๊ณ  ์ฝ”๋“œ
๐Ÿ’Š ์ƒ๊ฐ๋ณด๋‹ค ๊ฐ„๋‹จํ•œ ๋ฌธ์ œ์˜€๋Š”๋ฐ.. ๋‚ด๊ฐ€ ์ƒ๊ฐ์„ ๋ชปํ•œ ๋ถ€๋ถ„์ด ์žˆ์—ˆ๋‹ค. ํ”Œ๋กœ์ด๋“œ ์™€์ƒฌ์— ๋” ์ต์ˆ™ํ•ด์ ธ์•ผํ•  ๊ฒƒ ๊ฐ™๋‹ค.

์ฝ”๋“œ

const fs = require('fs'); 
const input = fs.readFileSync('/dev/stdin').toString().trim().split('\n');
const [V, E] = input.shift().split(" ").map(Number);

const arr = Array.from(new Array(V + 1), () => new Array(V + 1).fill(Infinity));

for (let e = 0; e < E; e++) {
  const [a, b, c] = input[e].split(" ").map(Number);
  arr[a][b] = c;
}

for (let k = 1; k < V + 1; k++) {
  for (let i = 1; i < V + 1; i++) {
    for (let j = 1; j < V + 1; j++) {
      if (i === j) {
        arr[i][j] = 0;
        continue;
      }
      if (arr[i][k] + arr[k][j] < arr[i][j]) {
        arr[i][j] = arr[i][k] + arr[k][j];
      }
    }
  }
}

let min = Infinity;
for (let i = 1; i < V + 1; i++) {
  for (let j = 1; j < V + 1; j++) {
    if (i === j) continue;
    min = Math.min(arr[i][j] + arr[j][i], min);
  }
}

if (min === Infinity) min = -1;
console.log(min);

0๊ฐœ์˜ ๋Œ“๊ธ€