이 영역을 누르면 첫 페이지로 이동
hoonDEV 블로그의 첫 페이지로 이동

hoonDEV

페이지 맨 위로 올라가기

hoonDEV

BOJ 11057 - 오르막 수 문제풀이

  • 2020.03.31 23:57
  • 알고리즘/문제풀이

문제를 읽고 이해하기

오르막 수는 수의 자리가 오름차순을 이루는 수를 말한다. 이때, 인접한 수가 같아도 오름차순으로 친다.
예를 들어, 2234와 3678, 11119는 오르막 수이지만, 2232, 3676, 91111은 오르막 수가 아니다.

수의 길이 N이 주어졌을 때, 오르막 수의 개수를 구하는 프로그램을 작성하시오. 수는 0으로 시작할 수 있다.

입력

첫째 줄에 N (1 ≤ N ≤ 1,000)이 주어진다.

출력

첫째 줄에 길이가 N인 오르막 수의 개수를 10,007로 나눈 나머지를 출력한다.

재정의와 추상화

점화식만 세우면 Top-down으로 풀던, Bottom-up으로 풀던 상관 없다.

// Top-down
dp[n][prev] = sum(dp[n - 1][i]) (prev <= i <= 9)
// Bottom-up
dp[n][num] = dp[n - 1][num] + dp[n][num - 1]

코드 작성

#include <iostream>
using namespace std;

long long cache[1001][10];

long long dp(int n, int prev) {
    if (n == 0) { return 1; }

    auto & ref = cache[n][prev];
    if (ref)
        return ref;

    for (int i = prev; i <= 9; i++)
        ref += dp(n - 1, i) % 10007;

    return ref;
}

int main() {
    int n;
    cin >> n;

    cout << dp(n, 0) % 10007;

    return 0;
}

 

 

'알고리즘 > 문제풀이' 카테고리의 다른 글

BOJ 11048 - 이동하기 문제풀이  (0) 2020.04.01
BOJ 11052 - 카드 구매하기 문제풀이  (0) 2020.04.01
BOJ 17839 - Baba is Rabbit 문제풀이  (0) 2020.03.31
BOJ 1929 - 소수 구하기 문제풀이  (0) 2020.03.30
BOJ 6603 - 로또 문제풀이  (0) 2020.03.30

댓글

이 글 공유하기

  • 구독하기

    구독하기

  • 카카오톡

    카카오톡

  • 라인

    라인

  • 트위터

    트위터

  • Facebook

    Facebook

  • 카카오스토리

    카카오스토리

  • 밴드

    밴드

  • 네이버 블로그

    네이버 블로그

  • Pocket

    Pocket

  • Evernote

    Evernote

다른 글

  • BOJ 11048 - 이동하기 문제풀이

    BOJ 11048 - 이동하기 문제풀이

    2020.04.01
  • BOJ 11052 - 카드 구매하기 문제풀이

    BOJ 11052 - 카드 구매하기 문제풀이

    2020.04.01
  • BOJ 17839 - Baba is Rabbit 문제풀이

    BOJ 17839 - Baba is Rabbit 문제풀이

    2020.03.31
  • BOJ 1929 - 소수 구하기 문제풀이

    BOJ 1929 - 소수 구하기 문제풀이

    2020.03.30
다른 글 더 둘러보기

정보

hoonDEV 블로그의 첫 페이지로 이동

hoonDEV

  • hoonDEV의 첫 페이지로 이동

검색

메뉴

  • 홈
  • 태그

카테고리

  • 분류 전체보기 (91)
    • 일상 (13)
      • 후기 (1)
      • 계획 (11)
    • 공지사항 (1)
    • 알고리즘 (54)
      • 문제풀이 (53)
      • 이론 (1)
    • 공부 (19)
      • React (0)
      • Angular (5)
      • Java (3)
      • C, C++ (3)
      • JavaScript (6)
      • WEB (2)
    • 디자인 (1)
      • UI, UX (1)
    • 개발 (0)
      • boom (0)

최근 글

인기 글

댓글

공지사항

아카이브

태그

  • 문제풀이
  • 이분탐색
  • javascript
  • es6
  • 그리디
  • dp
  • 백준
  • 알고리즘

나의 외부 링크

정보

훈개발자의 hoonDEV

hoonDEV

훈개발자

블로그 구독하기

  • 구독하기
  • RSS 피드

방문자

  • 전체 방문자
  • 오늘
  • 어제

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기
Powered by Tistory / Kakao. © 훈개발자. Designed by Fraccino.

티스토리툴바