문제
소스 코드
const filePath = process.platform === "linux" ? "/dev/stdin" : "./input.txt";
const input = require("fs")
.readFileSync(filePath)
.toString()
.trim()
.split("\n");
const N = +input[0];
const arr = input[1].split(" ").map(Number);
const op = input[2].split(" ").map(Number); // +, -, *, /
const answer = [Number.MIN_SAFE_INTEGER, Number.MAX_SAFE_INTEGER];
dfs(1, arr[0]);
console.log(answer[0] === 0 ? 0 : answer[0]);
console.log(answer[1] === 0 ? 0 : answer[1]);
function dfs(idx, total) {
if (idx === N) {
answer[0] = Math.max(answer[0], total);
answer[1] = Math.min(answer[1], total);
return;
}
for (let i = 0; i < 4; i++) {
if (op[i] >= 1) {
op[i] -= 1;
let newTotal = total;
if (i === 0) newTotal += arr[idx];
if (i === 1) newTotal -= arr[idx];
if (i === 2) newTotal *= arr[idx];
if (i === 3) newTotal = parseInt(total / arr[idx]);
dfs(idx + 1, newTotal);
op[i] += 1;
}
}
}
'알고리즘 연습' 카테고리의 다른 글
[알고리즘 연습] 백준 14712 (넴모넴모, 자바스크립트) (1) | 2023.06.22 |
---|---|
[알고리즘 연습] 백준 16987 (계란으로 계란치기, 자바스크립트) (0) | 2023.06.21 |
[알고리즘 연습] 백준 13549 (숨바꼭질 3, 자바스크립트) (0) | 2023.06.16 |
[알고리즘 연습] 백준 10971 (외판원 순회 2, 자바스크립트) (0) | 2023.06.16 |
[알고리즘 연습] 백준 1182 (부분수열의 합, 자바스크립트) (1) | 2023.06.15 |