시간 & 메모리 제한
문제
입력 & 출력
DP를 이용한 문제풀이
package com.Back;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Back_2293 {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int n =Integer.parseInt(st.nextToken());
int k =Integer.parseInt(st.nextToken());
//1~10까지
int [] dp = new int[k+1];
dp[0] = 1;
int temp;
for (int i = 0; i < n; i++) {
temp = Integer.parseInt(br.readLine());
for (int j = 1; j < k+1; j++) {
if(j>=temp) dp[j] += dp[j-temp];
}
}
System.out.println(dp[k]);
}
}
- DP를 이용해서 문제를 풀면 쉽게 풀 수 있습니다.
- 이 문제의 경우 점화식을 만드는 방법이 중요하다.
예제의 경우를 통해서 힌트를 얻으면
'Algorithm > 백준 알고리즘' 카테고리의 다른 글
백준_15686 치킨 배달(자바) / 브루드포스 (0) | 2021.04.14 |
---|---|
백준_12865 평범한 배낭(자바) / DP (0) | 2021.04.13 |
백준_10163 색종이(자바) (0) | 2021.04.06 |
백준_2583 영역 구하기(자바) / DFS (0) | 2021.04.06 |
백준_11725 트리의 부모 찾기 (자바) / 자료구조 & dfs (0) | 2021.04.05 |