문제
https://www.acmicpc.net/problem/11057
입출력
- 입출력
1
10
아이디어
DP // i번째자리까지 고려하여 j(0-9중)를 택했을 때 갯수
코드
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class Main {
static int N;
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
N = Integer.parseInt(br.readLine());
// 자리가 오름차순을 이루는 수, 인접한 수가 같아도 오름차순으로 침
// dp[i][j] // i번째 자리까지 고려하여 j(0-9중)를 택했을 때 갯수
// dp[i][j] dp[i-1][0...j-1] 개수 다 더하기
long[][] dp = new long[N + 1][10];
for (int j = 0; j <= 9; j++) {
dp[1][j] = 1;
}
for (int i = 1; i <= N; i++) {
for (int j = 0; j <= 9; j++) {
for (int k = 0; k <= j; k++) {
dp[i][j] = (dp[i][j] + dp[i - 1][k]) % 10007;
}
}
}
long sum = 0;
for (long x : dp[N]) {
sum = (sum + x) % 10007;
}
System.out.println(sum % 10007);
}
}
'Java' 카테고리의 다른 글
[백준] 12015 : 가장 긴 증가하는 부분 수열 2 (0) | 2025.03.08 |
---|---|
[백준] 14002 : 가장 긴 증가하는 부분 수열 4 (0) | 2025.03.08 |
[코드트리] 부분 수열의 합(DP) (0) | 2025.03.08 |
[백준] 17837 : 새로운 게임 2 (0) | 2025.03.07 |
[백준] 19238 : 스타트택시 (0) | 2025.03.07 |