본문 바로가기

BOJ

BOJ 11057 오르막 수

https://www.acmicpc.net/problem/11057

 

- DP

- 3중 for문

- 예외처리 : 길이가 1일 때

 

#include <cstdio>
int d[1005][11];
int mod = 10007;

int main(){
  int n;
  scanf("%d", &n);

  // 길이가 1인 경우 처리
  for(int i=0; i<=9; i++)
    d[1][i]=1;

  // 길이 2부터 n까지,
  // d[i][j]는 0부터 j까지 for문을 돌린다
  for(int i=2; i<=n; i++){
    for(int j=0; j<=9; j++){
      for(int k=0; k<=j; k++){
        d[i][j] += d[i-1][k];
        d[i][j] %= mod;
      }
    }
  }
  long long ans = 0;
  //마지막에 올 수 있는 수가 0~9이기 때문에
  // 0~9까지 모든 수를 넣어서 답을 구한다
  for(int i=0; i<10; i++){
    ans += d[n][i];
  }
  ans %= mod;
  printf("%lld", ans);
}

'BOJ' 카테고리의 다른 글

BOJ 1517 버블 소트  (0) 2020.05.19
BOJ 14442 벽 부수고 이동하기 2  (0) 2020.05.19
BOJ 10844 쉬운 계단 수  (0) 2019.07.19
BOJ 2193 이친수  (0) 2019.07.19
BOJ 11052 카드 구매하기  (0) 2019.07.18