https://www.acmicpc.net/problem/11057
11057번: 오르막 수
오르막 수는 수의 자리가 오름차순을 이루는 수를 말한다. 이때, 인접한 수가 같아도 오름차순으로 친다. 예를 들어, 2234와 3678, 11119는 오르막 수이지만, 2232, 3676, 91111은 오르막 수가 아니다. 수
www.acmicpc.net
문제
풀이
앞 자리 기준으로 자리 수가 늘어날때마다 추가로 들어간다고 생각하면 된다.
점화식은 다음과 같다 => dp[i][j] += dp[i-1][k];
i : 자릿수
j : 현재 자릿수의 0~9
k : 이전 자릿수의 0~9
그런데 이전 자릿수의 모든 수가 들어가는 것이 아닌 k<=j 까지 일때만 누적 합을 구해주면 된다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
|
import java.util.*;
import java.io.*;
public class Main{
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int n = Integer.parseInt(br.readLine());
int[][] dp = new int[n+1][10];
Arrays.fill(dp[1],1);
for(int i=2; i<=n; i++){
for(int j=0; j<10; j++){
for(int k=0; k<=j; k++){
dp[i][j] += dp[i-1][k];
dp[i][j] %= 10007;
}
}
}
System.out.println(Arrays.stream(dp[n]).sum()%10007);
}
}
|
cs |
'알고리즘,PS > 백준' 카테고리의 다른 글
[BOJ] 백준 [12865] 평범한 배낭 JAVA (0) | 2021.09.22 |
---|---|
[BOJ] 백준 [2293] 동전 1 JAVA (0) | 2021.09.18 |
[BOJ] 백준 [1932] 정수 삼각형 JAVA (0) | 2021.09.17 |
[BOJ] 백준 [1149] RGB거리 JAVA (0) | 2021.09.16 |
[BOJ] 백준 [2579] 계단 오르기 JAVA (0) | 2021.09.16 |