Search
📒

부분수열의 합

주차
문제번호
1182
언어
티어
실버
유형
브루트포스
백트래킹
nj_Blog
nj_상태
이해도
66%
풀이
사람
이해도 2
13 more properties

문제접근

재귀적인 접근
해당 인덱스에서 값을 더할 수도 있고 안 더할 수도 있기 때문에 두 경우를 모두 구해줘야함

놓쳤던 부분

코드

2016 KB

4 ms

#include <iostream> #include <vector> int n, s; std::vector<int> input_arr; int answer = 0; void input_setting() { std::ios_base::sync_with_stdio(false); std::cin.tie(0); std::cout.tie(0); } void input() { std::cin >> n >> s; input_arr.resize(n); for (int i = 0; i < n; i++) std::cin >> input_arr[i]; } void solution(int index, int sum) { sum += input_arr[index]; if (index >= n) return ; if (sum == s) ++answer; solution(index + 1, sum - input_arr[index]); solution(index + 1, sum); } void print() { std::cout << answer; } int main(void) { input_setting(); input(); solution(0, 0); print(); return (0); }
C++
복사