반응형
https://www.acmicpc.net/problem/14225
나올 수 있는 모든 부분 수열의 합을 체크해준 뒤, 가장 작은 값을 구해주었습니다.
#include <cstdio>
int n, s[20], cnt[2000001] = { 0 }, ans = 1;
void dfs(int sum, int depth) {
if (depth == n) {
cnt[sum] = 1;
return;
}
dfs(sum, depth + 1);
dfs(sum + s[depth], depth + 1);
}
int main() {
scanf("%d", &n);
for (int i = 0; i < n; i++) scanf("%d", &s[i]);
dfs(0, 0);
while (cnt[ans++]);
printf("%d", ans - 1);
}
반응형
'Algorithm' 카테고리의 다른 글
백준 2887 : 행성 터널 (0) | 2021.11.16 |
---|---|
백준 4386 : 별자리 만들기 (0) | 2021.11.16 |
백준 2212 : 센서 (0) | 2021.11.16 |
백준 4796 : 캠핑 (0) | 2021.11.16 |
백준 1774 : 우주신과의 교감 (0) | 2021.11.16 |