Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 격자판
- 인프런
- 모든행과열대각선의합
- 코테준비
- 등수구하기
- 뒤집은 소수
- Pointer
- array
- 최대 길이
- 보이는 학생
- 누적 계산
- 큰 수 출력하기
- 점수계산
- 투 포인터
- Two Pointer
- 공통원소 구하기
- 백준
- 임시반장 정하기
- 연속부분수열
- 10992
- 자바
- java
- ArrayList
- 알고리즘
- 10991
- 아스키코드
- 배열
- 가장 짧은 문자거리
- GitHub #Commit #BaekJoon
- 두 배열 합치기
Archives
- Today
- Total
ezhoon
[백준] 10844 쉬운 계단 수_Java 본문
📖 문제
10844번: 쉬운 계단 수
첫째 줄에 정답을 1,000,000,000으로 나눈 나머지를 출력한다.
www.acmicpc.net
⚠️ 주의사항
- 0으로 시작하는 경우는 없다.
- 0 혹은 9로 끝나는 경우는 각각 1과 8로만 파생된다.
✍️ 이해
/**
* 1. 인접한 모든 자릿수가 1씩 차이나지만 0은 1로 9은 8로 하나씩만 파생이된다.
* 2. 단 0으로 시작하는 경우는 없기에 처음에 선언 할 때 0은 제외 할 것
* 3. 점화식 : dp[n][i] = dp [n-1][i-1] + dp [n-1][i+1]
* 4. 재귀 방식으로 풀이
* 5. 메모이제이션 사용
*/
4번 메모이제이션을 처음에는 적용하지 않아 시간 초과가 계속 떴다.
✏️ 풀이
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
static int N;
static Long[][] arr;
public static void main(String[] args) throws IOException {
Main T = new Main();
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
N = Integer.parseInt(br.readLine());
arr = new Long[N + 1][10];
for (int i = 0; i <= 9; i++) {
arr[0][i] = 1L;
}
long answer = 0;
for (int i = 1; i <= 9; i++) {
answer += T.solution(N, i);
}
System.out.println(answer % 1000000000);
}
public long solution(int L, int temp) {
if (L == 1) {
return arr[L][temp];
}
if (arr[L][temp] == null) {
if (temp == 0) {
arr[L][temp] = solution(L - 1, 1);
} else if (temp == 9) {
arr[L][temp] = solution(L - 1, 8);
} else {
arr[L][temp] = solution(L - 1, temp + 1) + solution(L - 1, temp - 1);
}
}
return arr[L][temp] % 1000000000;
}
}
재귀를 사용한다면 무조건 메모이제이션까지 같이 생각하자

'[Java] 백준 문제풀이 > DP' 카테고리의 다른 글
[백준] 2193 이친수_Java (0) | 2022.03.21 |
---|---|
[백준] 11057 오르막 수_Java (0) | 2022.03.17 |
[백준] 9059 1,2,3더하기_JAVA (0) | 2022.03.02 |
[백준] 11727 2xn 타일링_Java (0) | 2022.03.01 |
[백준] 11726 2xn 타일링_Java (0) | 2022.03.01 |
Comments