๐ท๐ผ๋ชจ์ฌ๋ด์ ๊ฐ๋ฐ์์ฒ๐ท๐ผ
[JAVA/์ฝ๋ฉํ ์คํธ] ํฉ์ด ๊ฐ์ ๋ถ๋ถ์งํฉ ๋ณธ๋ฌธ
[JAVA/์ฝ๋ฉํ ์คํธ] ํฉ์ด ๊ฐ์ ๋ถ๋ถ์งํฉ
์์ผ์ด 2021. 11. 22. 03:47์ค๋ช
N๊ฐ์ ์์๋ก ๊ตฌ์ฑ๋ ์์ฐ์ ์งํฉ์ด ์ฃผ์ด์ง๋ฉด, ์ด ์งํฉ์ ๋ ๊ฐ์ ๋ถ๋ถ์งํฉ์ผ๋ก ๋๋์์ ๋
๋ ๋ถ๋ถ์งํฉ์ ์์์ ํฉ์ด ์๋ก ๊ฐ์ ๊ฒฝ์ฐ๊ฐ ์กด์ฌํ๋ฉด “YES"๋ฅผ ์ถ๋ ฅํ๊ณ , ๊ทธ๋ ์ง ์์ผ๋ฉด ”NO"๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์ธ์.
๋๋ก ๋๋๋ ๋ ๋ถ๋ถ์งํฉ์ ์๋ก์ ์งํฉ์ด๋ฉฐ, ๋ ๋ถ๋ถ์งํฉ์ ํฉํ๋ฉด ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง ์๋์ ์งํฉ์ด ๋์ด ํฉ๋๋ค.
์๋ฅผ ๋ค์ด {1, 3, 5, 6, 7, 10}์ด ์ ๋ ฅ๋๋ฉด {1, 3, 5, 7} = {6, 10} ์ผ๋ก ๋ ๋ถ๋ถ์งํฉ์ ํฉ์ด 16์ผ๋ก ๊ฐ์ ๊ฒฝ์ฐ๊ฐ ์กด์ฌํ๋ ๊ฒ์ ์ ์ ์๋ค.
์ ๋ ฅ
์ฒซ ๋ฒ์งธ ์ค์ ์์ฐ์ N(1<=N<=10)์ด ์ฃผ์ด์ง๋๋ค.
๋ ๋ฒ์งธ ์ค์ ์งํฉ์ ์์ N๊ฐ๊ฐ ์ฃผ์ด์ง๋ค. ๊ฐ ์์๋ ์ค๋ณต๋์ง ์๋๋ค.
์ถ๋ ฅ
์ฒซ ๋ฒ์งธ ์ค์ “YES" ๋๋ ”NO"๋ฅผ ์ถ๋ ฅํ๋ค.
์์ ์ ๋ ฅ 1
6
1 3 5 6 7 10
์์ ์ถ๋ ฅ 1
YES
-2022.01.27
import java.util.*;
public class Main {
static int[] array;
static int total;
static String answer = "NO";
public void DFS(int Level, int sum) {
if(sum > total/2){
return;
}
if(answer == "YES"){
return;
}else{
// ๋ง์ง๋ง array
if(Level == array.length){
if((total - sum) == sum){
answer = "YES";
}
}else{
DFS(Level+1,sum+array[Level]);
DFS(Level+1, sum);
}
}
}
public static void main(String[] args) {
Main T = new Main();
Scanner in = new Scanner(System.in);
int n=in.nextInt();
array = new int[n];
for(int i=0; i<n; i++) {
array[i] = in.nextInt();
total+= array[i];
}
T.DFS(0,0);
System.out.println(answer);
}
}
import java.util.*;
public 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 main = 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];
}
main.DFS(0, 0, arr);
System.out.println(answer);
}
}
'๊ฐ๋ฐ > ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด JAVA' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JAVA/์ฝ๋ฉํ ์คํธ] ์ต๋ ์ ์ ๊ตฌํ๊ธฐ(DFS) (0) | 2021.11.30 |
---|---|
[JAVA/์ฝ๋ฉํ ์คํธ] ๋ฐ๋์ด ์น์ฐจ(DFS) (0) | 2021.11.28 |
[JAVA/์ฝ๋ฉํ ์คํธ] ์์ฃผํ์ง ๋ชปํ ์ ์ (0) | 2021.10.30 |
[JAVA/์ฝ๋ฉํ ์คํธ] ๊ฐ์ฅ ์งง์ ๋ฌธ์๊ฑฐ๋ฆฌ (0) | 2021.10.04 |
๊ทธ๋ํ ์ต๋จ๊ฑฐ๋ฆฌ(BFS) (0) | 2021.08.02 |