λ¬Έμ
λμμ΄λ μ§νꡬ리 μ리μ¬λ‘ λͺ μ±μ λ λ Έμλ€. μ΄λ²μλ μ΄μ μ μμλ μλ‘μ΄ μ리μ λμ μ ν΄λ³΄λ €κ³ νλ€.
μ§κΈ λμμ΄μ μμλ μ¬λ£κ° Nκ° μλ€. λμμ΄λ κ° μ¬λ£μ μ λ§ Sμ μ΄λ§ Bλ₯Ό μκ³ μλ€. μ¬λ¬ μ¬λ£λ₯Ό μ΄μ©ν΄μ μ리ν λ, κ·Έ μμμ μ λ§μ μ¬μ©ν μ¬λ£μ μ λ§μ κ³±μ΄κ³ , μ΄λ§μ ν©μ΄λ€.
μκ±°λ μ΄ μμμ μ’μνλ μ¬λμ λ§μ§ μλ€. λμμ΄λ μ¬λ£λ₯Ό μ μ ν μμ΄μ μ리μ μ λ§κ³Ό μ΄λ§μ μ°¨μ΄λ₯Ό μκ² λ§λ€λ €κ³ νλ€. λ, λ¬Όμ μ리λΌκ³ ν μλ μκΈ° λλ¬Έμ, μ¬λ£λ μ μ΄λ νλ μ¬μ©ν΄μΌ νλ€.
μ¬λ£μ μ λ§κ³Ό μ΄λ§μ΄ μ£Όμ΄μ‘μ λ, μ λ§κ³Ό μ΄λ§μ μ°¨μ΄κ° κ°μ₯ μμ μ리λ₯Ό λ§λλ νλ‘κ·Έλ¨μ μμ±νμμ€.
μ λ ₯
첫째 μ€μ μ¬λ£μ κ°μ N(1 ≤ N ≤ 10)μ΄ μ£Όμ΄μ§λ€. λ€μ Nκ° μ€μλ κ·Έ μ¬λ£μ μ λ§κ³Ό μ΄λ§μ΄ 곡백μΌλ‘ ꡬλΆλμ΄ μ£Όμ΄μ§λ€. λͺ¨λ μ¬λ£λ₯Ό μ¬μ©ν΄μ μ리λ₯Ό λ§λ€μμ λ, κ·Έ μ리μ μ λ§κ³Ό μ΄λ§μ λͺ¨λ 1,000,000,000λ³΄λ€ μμ μμ μ μμ΄λ€.
μΆλ ₯
첫째 μ€μ μ λ§κ³Ό μ΄λ§μ μ°¨μ΄κ° κ°μ₯ μμ μ리μ μ°¨μ΄λ₯Ό μΆλ ₯νλ€.
μμ μ λ ₯ 1
4
1 7
2 6
3 8
4 9
μμ μΆλ ₯ 1
1
π νμ΄ μ½λ
const fs = require('fs');
const file = process.platform === 'linux' ? '/dev/stdin' : './input.txt';
const input = fs.readFileSync(file).toString().trim().split('\n');
const n = Number(input[0]);
const arr = input.slice(1).map((line) => line.split(' ').map(Number));
const visited = new Array(n).fill(false);
let min = 1e9;
const result = [];
function dfs(depth) {
if (depth >= 1) {
let totalX = 1;
let totalY = 0;
for (const [x, y] of result) {
totalX *= x;
totalY += y;
}
min = Math.min(min, Math.abs(totalX - totalY));
}
for (let i = depth; i < n; i++) {
if (visited[i]) continue;
visited[i] = true;
result.push(arr[i]);
dfs(i + 1);
result.pop();
visited[i] = false;
}
}
dfs(0);
console.log(min);
π νμ΄ ν΄μ€
ν΄λΉ λ¬Έμ λ μ¬λ£λ₯Ό μ΄μ©ν΄μ μ λ§κ³Ό μ΄λ§μ μ°¨μ΄λ₯Ό μ΅μλ‘ λ§λλ κ²μ ꡬνλ λ¬Έμ λ€.
Nκ°μ μ¬λ£κ° μ£Όμ΄μ§κ³ μ΄κ²λ€μ μ μ‘°ν©ν΄μ ꡬν΄μΌ νλ€.
μ¦, λ¬Έμ μ μꡬμ¬νμ Nκ°μ μ¬λ£μ λν κ°λ₯ν λͺ¨λ μ‘°ν©μ ꡬνλ κ²μ΄λ€.
κ·Έ μ΄μ λ (A, B, C) 3κ°μ μ¬λ£κ° μλ€κ³ κ°μ νλ©΄
κΈΈμ΄ #1: (A), (B), (C)
κΈΈμ΄ #2: (A, B), (A, C), (B, C)
κΈΈμ΄ #3: (A, B, C)
μ΄λ κ² λͺ¨λ μ‘°ν©μ ꡬνλ©΄μ μ°¨μ΄μ μ΅μκ°μ μ°Ύμ μ μλ€.
μ μΆλ ₯μ λ°μμ£Όκ³ , λ°©λ¬Έμ μ²λ¦¬ν λ°°μ΄κ³Ό μ΅μκ°μ λ΄μμ€ λ³μ, μ¬κ·λ₯Ό νΈμΆνλ©΄μ κ³μ°μ ν΄μΌ νλ λ°°μ΄μ μ μΈν΄ μ£Όμλ€.
dfsν¨μμμλ depthκ° 1 μ΄μ μ΄λ©΄ 무쑰건 κ³μ°μ΄ κ°λ₯ν λ‘ ν΄μ£Όμλ€.
μ΄μ λ μ΅μν 1κ° μ΄μμ μ¬λ£λ₯Ό μ¬μ©ν΄μΌ νκ³ μ‘°ν©λ§λ€ κ³μ°μ ν΄μ€μΌ νκΈ° λλ¬Έμ΄λ€.
μ΄ κ³μ°μμλ totalX(μ λ§)λ μ΄κΈ°μ κ³±μ ν μ * 1λΆν° μμν΄μΌ νκ³ totalY(μ΄λ§)λ 0λΆν° ν©μ ꡬνλ€.
κ³μ°μ ν λ€ min λ³μμ νμ¬ μ΅μκ°κ³Ό μ λ§κ³Ό μ΄λ§μ μ°¨μ΄λ₯Ό κ³μ°νκ³ λ μ€ μ΅μκ°μ min λ³μμ λ΄μμ€λ€.
λ°λͺ©λ¬Έμμλ depthλΆν° μμν΄μ μ νλ μ¬λ£μ λ€μ μ¬λ£λΆν° μ νλκ² ν΄ μ£Όκ³ ,
μ‘°ν©μ ꡬν λ λμΌν μ¬λ£λ μ νλμ§ λͺ»νλλ‘ λ°©λ¬Έμ²λ¦¬λ₯Ό ν΄μ£Όμλ€.
μ΄λ―Έ μ νλ(λ°©λ¬Έν) μ¬λ£λΌλ©΄ λ€μ μ¬λ£λ‘ λμ΄κ°λλ‘ νκ³ μ νλμ§ μμ(λ°©λ¬Ένμ§ μμ) μ¬λ£λΌλ©΄ result λ°°μ΄μ μ¬λ£λ₯Ό λ£μ΄μ£Όκ³ dfsλ₯Ό μ¬κ·μ μΌλ‘ νΈμΆνλ€.
λλλ©΄ κ³μ°λ μ¬λ£λ κΊΌλ΄μ£Όκ³ λ°©λ¬Έμ²λ¦¬λ₯Ό ν΄μ ν΄ μ€λ€.
λ§μ§λ§μΌλ‘ minμ μΆλ ₯ν΄ κ²°κ³Όλ‘ λ΄λ³΄λΈλ€.