
문제
풀이
계속해서 재귀와 백트래킹 문제를 풀고 있는데, 문제 유형이 조금만 달라져도 풀기가 어려워지는 것이 느껴진다. 이 문제의 경우, 어떤 값에 대해서 추가할지 아닐지를 정해나가는 문제이기 때문에 그 두 가지 경우에 대해서 모두 재귀함수를 호출하면서 반복해나가는 형태라 떠올리기 힘들었다. 재귀와 백트래킹 문제를 계속해서 풀어봐야겠다.
"use strict"
const [[n, s], inputs] = require('fs').readFileSync('/dev/stdin').toString().trim().split('\n').map(str => str.split(' ').map(Number));
function solution(n, s, inputs) {
let answer = 0;
function backTracking(k, sum) {
if (k === n) {
if (sum === s) answer++;
return;
}
backTracking(k+1, sum);
backTracking(k+1, sum+inputs[k]);
}
backTracking(0, 0);
if (s == 0) answer--;
return answer;
}
console.log(solution(n, s, inputs));'BOJ > Silver' 카테고리의 다른 글
| [BOJ/백준] 15651번 - N과 M(3) (Javascript / NodeJS) (0) | 2023.12.20 |
|---|---|
| [BOJ/백준] 15650번 - N과 M(2) (Javascript / NodeJS) (0) | 2023.12.20 |
| [BOJ/백준] 15649번 - N과 M (1) (Javascript / NodeJS) (0) | 2023.12.20 |
| [BOJ/백준] 1992번 - 쿼드트리 (Javascript / NodeJS) (0) | 2023.12.18 |
| [BOJ/백준] 2630번 - 색종이 만들기 (Javascript / NodeJS) (0) | 2023.12.18 |