dp는 규칙을 찾아서 간결하게 푸는 문제인데
정리능력이 부족한건지 집중력 부족인지
잘 해결하지 못했다.
다른 블로그 참조해서 보려고 해도 이해가 전혀 가지 않아서 찾고 찾다가
아주 쉽게 풀어놓은 블로그가 있어서 그걸 보고 겨우 이해했다.
간결하게 테이블로 규칙을 찾아서 하나씩 해보는 연습이 필요할듯 싶다.
기초문제이지만 멘탈을 엉망진창으로 만들 수 있다는 걸 보여준 사례...
public static final int MOD = 1000000000;
static int N, K;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
N = Integer.parseInt(st.nextToken());
K = Integer.parseInt(st.nextToken());
int[][] dp = new int[N+1][K+1];
//
for(int i=1; i<=K; i++) {
dp[1][i] = i;
}
for(int i=1; i<=N; i++) {
dp[i][1] = 1;
}
for(int i=2; i<=N; i++) {
for(int j=1; j<=K; j++) {
dp[i][j] = (dp[i-1][j] + dp[i][j-1])%MOD;
}
}
System.out.println(dp[N][K]);
}
mizzo-dev.tistory.com/entry/baekjoon2225
[백준(baekjoon) 2225] 합분해
[백준(baekjoon) 2225] 합분해 문제 백준 2225 0부터 N까지의 정수 K개를 더해서 그 합이 N이 되는 경우의 수를 구하시오 덧셈의 순서가 바뀐 경우는 다른 경우로 센다(1+2와 2+1은 서로 다른
mizzo-dev.tistory.com
'Algorithm > DP' 카테고리의 다른 글
[프로그래머스] 거스름돈 (0) | 2021.03.25 |
---|---|
[baekjoon #11726] 2×n 타일링 (0) | 2021.03.23 |