안녕하세요! 오랜만이네요 며칠 동안 동아리 활동 때문에 며칠 동안 못했더니 그새 감을 조금 잃은 거 같아서 슬픔니다ㅜㅜ
이 문제를 보자마자 공식이 있겠구나! 수학 문제구나! 생각했지만 금방 예전에 풀었던 계단 문제와 유사하다는 것을 알게 되었습니다. 정말 비슷하더라고요
자릿수를 입력받고 그 자릿수에서 나올 수 있는 오름차순의 개수를 구하는 문제입니다.
import java.io.*;
import java.util.*;
class Main {
public static void main(String[] arg) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader (System.in));
int n = Integer.parseInt(br.readLine());
int i, j;
int cnt = 0;
//숫자 순서
int[][] dp = new int[10][n+1];
for(i = 0;i<=9;i++) {
dp[i][1] = 1;
}
int k;
for(i = 2;i<=n;i++) {
for(j = 0;j<=9;j++) {
for(k = j;k<=9;k++) {
dp[j][i] += dp[k][i-1];
dp[j][i]%=10007;
}
}
}
for(i = 0;i<=9;i++) {
cnt += dp[i][n];
cnt%=10007;
}
System.out.println(cnt);
}
}
dp를 이차원 배열로 만들고 앞에는 숫자, 뒤에는 자릿 수 이런식으로 넣었습니다. 그렇게 해서 차곡차곡 더해갔습니다(나머지는 중간중간 해주는거 필수!)
실수한 것: 이차원배열 앞 뒤 바뀌어서 만들었다. 물론 틀린 건 아니지만 매우 헷갈렸다.
알아야 할 것: 없따.
다른 사람 코드랑 다른 점: 없따.
'알고리즘 > 백준 문제풀이' 카테고리의 다른 글
백준 [java 자바] 1946번 : 신입사원 (1) | 2022.08.10 |
---|---|
백준 [java 자바] 3000번 : 직각 삼각형 (0) | 2022.08.10 |
백준 [자바 java] 2468번 : 안전거리 (0) | 2022.08.02 |
백준 [자바 java] 11052번 : 카드 구매하기 (0) | 2022.08.01 |
백준 [자바 java] 1932번 : 정수삼각형 (1) | 2022.08.01 |