https://www.acmicpc.net/problem/11057
dp문제이다.
표를 그려서 확인해보면 감이 온다.
이렇게 그려봤다.
열에 있는 0~9까지의 숫자가 각 자리수(행 번호)에 들어갔을 때 나올 수 있는 경우의 수 이다.
예를 들어 행이 2, 열이 0인 수는
20, 21, 22, 23, 24, 25, 26, 27, 28, 29
이렇게 10개가 된다.
아무튼 저 표를 봤을 때 규칙을 찾을 수 있다.
노랑 + 노랑 = 핑크
라는 규칙을 찾을 수 있었다. 그대로 구현하면 된다.
코드
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
int[][] dp = new int[N+1][10];
for(int i=1; i<=N; i++)
dp[i][9] = 1;
for(int i=1; i<=N; i++) {
for(int j=8; j>=0; j--) {
dp[i][j] = (dp[i][j+1] + dp[i-1][j]) % 10007;
}
}
int answer = 0;
for(int i=0; i<=9; i++)
answer = (answer+dp[N][i])% 10007;
System.out.println(answer);
}
}
화이팅
'알고리즘 > 백준' 카테고리의 다른 글
[BaekJoon] 백준 2493번 _ 탑 for JAVA (0) | 2023.06.22 |
---|---|
[BaekJoon] 백준 16953번 _ A→B for JAVA (0) | 2023.06.21 |
[BackJoon] 백준 9465번 _ 스티커 for JAVA (1) | 2023.06.13 |
[BaekJoon] 백준 1918번 _ 후위 표기식 for JAVA (0) | 2023.06.07 |
[BaekJoon] 백준 1764번 _ 듣보잡 for JAVA (0) | 2023.06.06 |