import java.util.Scanner;
class Main{
static String answer = "NO";
static int n, total = 0;
boolean flag = false;
public void DFS(int L, int sum, int[] arr){
if(flag) return;
if(sum>total/2) return;
if(L==n){
if((total-sum)==sum){
answer="YES";
flag = true;
}
}
else{
DFS(L+1, sum+arr[L], arr);
DFS(L+1, sum, arr);
}
}
public static void main(String[] args) {
Main T = new Main();
Scanner kb = new Scanner(System.in);
n=kb.nextInt();
int[] arr = new int[n];
for(int i=0; i<n; i++){
arr[i]=kb.nextInt();
total+=arr[i];
}
T.DFS(0,0, arr);
System.out.println(answer);
}
}
'ALGORITHM' 카테고리의 다른 글
[JAVA] 알고리즘 : DFS- 최대점수 구하기 (0) | 2022.09.23 |
---|---|
[JAVA] 알고리즘 : DFS- 바둑이 승차 (0) | 2022.09.23 |
[JAVA] 백준 2108번 - 통계학 (0) | 2022.09.22 |
[JAVA] 백준 25305번 - 커트라인 (0) | 2022.09.21 |
[JAVA] 백준 10989번 - 수 정렬하기 3(카운팅 정렬) (0) | 2022.09.21 |