문제
소스 코드
const filePath = process.platform === "linux" ? "/dev/stdin" : "./input.txt";
const input = require("fs")
.readFileSync(filePath)
.toString()
.trim()
.split("\n");
const [N, S] = input[0].split(" ").map(Number);
const arr = input[1].split(" ").map(Number);
let answer = 0;
dfs(0, 0);
console.log(S === 0 ? answer - 1 : answer); // S가 0인 경우 초기값을 포함하기 때문에 -1
function dfs(cnt, sum) {
if (cnt === N) {
if (sum === S) answer += 1;
return;
}
// 현재값을 포함
dfs(cnt + 1, sum + arr[cnt]);
// 현재값을 포함하지 않음
dfs(cnt + 1, sum);
}
'알고리즘 연습' 카테고리의 다른 글
[알고리즘 연습] 백준 13549 (숨바꼭질 3, 자바스크립트) (0) | 2023.06.16 |
---|---|
[알고리즘 연습] 백준 10971 (외판원 순회 2, 자바스크립트) (0) | 2023.06.16 |
[알고리즘 연습] 백준 2503 (숫자 야구, 자바스크립트) (0) | 2023.06.15 |
[알고리즘 연습] 백준 13023 (ABCDE, 자바스크립트) (0) | 2023.06.14 |
[알고리즘 연습] 백준 17626 (Four Squares, 자바스크립트) (0) | 2023.06.14 |