백준 14225 부분수열의 합 (Java,자바)
이번에 풀어본 문제는
백준 14225번 부분수열의 합 입니다.
📕 문제 링크
❗️코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
static int [] map;
static boolean [] sum;
static int N;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
N = Integer.parseInt(br.readLine());
map = new int[N];
int size = 0;
StringTokenizer st = new StringTokenizer(br.readLine());
for(int i = 0; i < N; i++)
{
map[i] = Integer.parseInt(st.nextToken());
size += map[i];
}
sum = new boolean[size+2];
for(int i = 0; i < N; i++)
{
comb(i,map[i]);
}
for(int i = 1; i < size+2; i++)
{
if(!sum[i])
{
System.out.print(i);
break;
}
}
}
static void comb(int idx, int tmp)
{
sum[tmp] = true;
for(int i = idx+1; i < N; i++)
{
comb(i,tmp+map[i]);
}
}
}
📝 풀이
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
static int [] map;
static boolean [] sum;
static int N;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
N = Integer.parseInt(br.readLine());
map = new int[N];
int size = 0;
StringTokenizer st = new StringTokenizer(br.readLine());
for(int i = 0; i < N; i++)
{
map[i] = Integer.parseInt(st.nextToken());
size += map[i];
}
sum = new boolean[size+2];
for(int i = 0; i < N; i++)
{
comb(i,map[i]);
}
for(int i = 1; i < size+2; i++)
{
if(!sum[i])
{
System.out.print(i);
break;
}
}
}
static void comb(int idx, int tmp)
{
sum[tmp] = true;
for(int i = idx+1; i < N; i++)
{
comb(i,tmp+map[i]);
}
}
}
📝 풀이
주어진 수열의 부분수열의 합이 될 수 없는 자연수중 최솟값을 구하는 문제입니다.
부분수열의 합을 모두 구하고, 1부터 시작하는 자연수들 중 구해지지 않은 값을 출력하면 해결할 수 있습니다.
부분수열의 합은 조합을 이용하여 구하면 됩니다.
📜 후기
부분수열로 만들 수 있는 최댓값까지 전부 구할 수 있는 경우가 있다는 것을 인지해야합니다. ex) (2,1,4)
Author And Source
이 문제에 관하여(백준 14225 부분수열의 합 (Java,자바)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jh5253/백준-14225-부분수열의-합-Java자바저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)