baekjoon 20260325

This commit is contained in:
songyc macbook 2026-03-26 22:48:50 +09:00
parent ce51918114
commit bbff86fc50

View File

@ -0,0 +1,36 @@
export {};
const input = require("fs").readFileSync(0).toString().trim().split("\n");
const inf: number = 1e9;
const N: number = Number(input[0]);
let W: number[][] = [];
for(let i=1; i<=N; i++) {
W.push(input[i].split(" ").map(Number));
}
let dp: number[][] = Array.from({length: N}, () => new Array(1<<N).fill(0));
const travel = (current: number, visited: number): number => {
if(visited === ((1<<N) - 1)) {
if(W[current][0] !== 0) return W[current][0];
return inf;
}
if(dp[current][visited] === 0) {
let min_cost: number = inf;
for(let next = 0; next <N; next++) {
if(W[current][next] === 0 || (visited & (1 << next))) continue;
const cost: number = W[current][next] + travel(next, (visited | (1 << next)));
min_cost = Math.min(cost, min_cost);
}
dp[current][visited] = min_cost;
}
return dp[current][visited];
};
console.log(travel(0,1));