백준7490번 node.js
const fs = require("fs");
const input = fs.readFileSync("/dev/stdin").toString().trim().split("\n");
const testCase = Number(input[0]);
let n = 0;
let arr = [];
for (let i = 1; i <= testCase; i += 1) {
n = Number(input[i]);
arr = []; //다음 케이스 계산을 위해 초기화
for (let j = 1; j <= n; j += 1) {
arr.push(j);
}
dfs([], 0);
console.log("");
}
function dfs(array, depth) {
if (depth === n - 1) {
let line = "";
for (let i = 0; i < n - 1; i += 1) {
line += arr[i] + array[i];
}
line += `${arr[n - 1]}`;
answer = eval(line.split(" ").join("")); //공백 제거 후 수식 계산
if (answer === 0) console.log(line);
return;
}
for (let j of [" ", "+", "-"]) {
array.push(j);
dfs(array, depth + 1);
array.pop();
}
}
+, -, 공백은 중복으로 사용될 수 있는 중복 순열입니다.

아스키 코드 순서대로 출력하는 조건이 있으므로, 부호의 수열을 [' ','+','-'] 순으로 하여야 오답을 받지 않습니다.