https://www.acmicpc.net/problem/14225
14225번: 부분수열의 합
수열 S가 주어졌을 때, 수열 S의 부분 수열의 합으로 나올 수 없는 가장 작은 자연수를 구하는 프로그램을 작성하시오. 예를 들어, S = [5, 1, 2]인 경우에 1, 2, 3(=1+2), 5, 6(=1+5), 7(=2+5), 8(=1+2+5)을 만들
www.acmicpc.net
//[C++] 백준 문제풀이 (Bruteforcing)
#include <bits/stdc++.h>
int n;
int arr[21];
bool sums[2000001];
void dfs(int depth, int sum){
if (depth == n){
sums[sum] = true;
return;
}
dfs(depth + 1, sum);
dfs(depth + 1, sum + arr[depth]);
}
int main(){
std::ios_base::sync_with_stdio(false);
std::cin.tie(nullptr);
std::cin >> n;
for (int i = 0; i < n; ++i){
std::cin >> arr[i];
}
dfs(0, 0);
int i = 1;
while(sums[i]){
++i;
}
std::cout << i << "\n";
return 0;
}
'백준 문제풀이 > Bruteforcing' 카테고리의 다른 글
[C++] 백준 문제풀이 (Bruteforcing) 17086번 아기 상어 2 (0) | 2023.07.01 |
---|---|
[C++] 백준 문제풀이 (Bruteforcing) 5568번 카드 놓기 (0) | 2023.06.28 |
[C++] 백준 문제풀이 (Bruteforcing) 2502 떡 먹는 호랑이 (0) | 2023.06.27 |
[C++] 백준 문제풀이 (Bruteforcing) 1058번 친구 (0) | 2023.06.27 |
[C++] 백준 문제풀이 (Bruteforcing) 1059번 좋은 구간 (0) | 2023.06.27 |