문제
소스 코드
const filePath = process.platform === "linux" ? "/dev/stdin" : "./input.txt";
const input = require("fs")
.readFileSync(filePath)
.toString()
.trim()
.split("\n");
const N = +input[0];
const words = [];
let result = [];
let answer = "";
let visited;
for (let i = 1; i <= N; i++) words.push(input[i].trim().split("").sort());
for (const word of words) {
result = [];
visited = new Array(word.length).fill(false);
dfs(word, "", 0);
if (answer !== "") answer += "\n";
answer += result.join("\n");
}
console.log(answer);
function dfs(word, str, idx) {
if (idx === word.length) {
result.push(str);
return;
}
for (let i = 0; i < word.length; i++) {
if (
result.length !== 0 &&
result[result.length - 1].slice(0, idx + 1) === str + word[i]
)
continue;
if (visited[i]) continue;
visited[i] = true;
dfs(word, str + word[i], idx + 1);
visited[i] = false;
}
}
'알고리즘 연습' 카테고리의 다른 글
[알고리즘 연습] 백준 9663 (N-Queen, 자바스크립트) (0) | 2023.07.11 |
---|---|
[알고리즘 연습] 백준 18430 (무기 공학, 자바스크립트) (0) | 2023.07.10 |
[알고리즘 연습] 백준 3980 (선발 명단, 자바스크립트) (0) | 2023.06.30 |
[알고리즘 연습] 백준 1174 (줄어드는 수, 자바스크립트) (0) | 2023.06.26 |
[알고리즘 연습] 백준 14712 (넴모넴모, 자바스크립트) (1) | 2023.06.22 |