-
[백준][10844번] 쉬운 계단 수Algorithm/백준 2020. 3. 19. 22:31
https://www.acmicpc.net/problem/10844
10844번: 쉬운 계단 수
첫째 줄에 정답을 1,000,000,000으로 나눈 나머지를 출력한다.
www.acmicpc.net
풀이과정
1. dp문제이다.
2. N자리수의 값이 K일 경우 N - 1 자리에는 K - 1, K + 1 값이 올 수 있다.
dp[N][K] = dp[N][K -1] + dp[N][K +1] 의 식을 구 할 수 있다.
3. 0과 9의 경우 -1과 10이 올 수 없으니 조건을 추가해주었다.
소스코드
더보기#include<stdio.h> typedef unsigned long long ull; ull dp[101][10]; ull solution(int n) { for (int i = 2; i <= n; i++) { for (int j = 0; j <= 9; j++) { dp[i][j] = 0; if (j - 1 >= 0) dp[i][j] += dp[i - 1][j - 1]; if (j + 1 <= 9) dp[i][j] += dp[i - 1][j + 1]; dp[i][j] %= 1000000000; } } ull sum = 0; for (int j = 0; j <= 9; j++) { sum += dp[n][j]; } return (sum % 1000000000); } int main() { int n; for (int i = 1; i <= 9; i++) { dp[1][i] = 1; } scanf("%d", &n); printf("%llu\n", solution(n)); //1000000000 }
'Algorithm > 백준' 카테고리의 다른 글
[백준][9465번] 스티커 (0) 2020.03.19 [백준][11057번] 오르막 수 (0) 2020.03.19 [백준][2193]이친수 (0) 2020.03.19 [백준][1463번] 1로 만들기 (0) 2020.03.18 [백준][11726번] 2×n 타일링 (0) 2020.03.18