본문 바로가기
PS 문제 풀이/Baekjoon

[BOJ] 백준 14225 부분수열의 합

by 까망 하르방 2021. 2. 25.
반응형

출처: https://www.acmicpc.net/problem/14225

 Input 

3

5 1 2

 

 Output 

4

▶ DFS 이용

원소의 개수는 20개이며 각 원소의 최대값은 100,000이므로

부분 수열 합의 최대값 = 20 × 100,000 = 2,000,000

(연속된 원소로 이루어진 부분 수열 X)


#include <iostream>
using namespace std;
#define LM 2000001
bool isOK[LM];
int N, arr[20];
 
void DFS(int idx, int sum){
    if(idx == N){
        isOK[sum] = true;
        return;
    }
 
    // 현재 숫자를 부분수열에 포함하거나 포함하지 않거나
    DFS(idx+1, sum+arr[idx]);
    DFS(idx+1, sum);
}
 
int main() {
    scanf("%d", &N);
    for (int i = 0; i < N; i++)
        scanf("%d", &arr[i]);
 
    DFS(0, 0);
 
    for (int i = 1; i < LM; ++i) {
        if (!isOK[i]) {
            printf("%d", i);
            return 0;
        }
    }
}

 

반응형

'PS 문제 풀이 > Baekjoon' 카테고리의 다른 글

[BOJ] 백준 2935 소음  (0) 2021.02.25
[BOJ] 백준 2822 점수 계산  (0) 2021.02.25
[BOJ] 백준 10815 숫자 카드  (0) 2021.02.25
[BOJ] 백준 1158 요세푸스 문제  (0) 2021.02.25
[BOJ] 백준 2458 키 순서  (0) 2021.02.25

댓글