[백준] 11057번: 오르막 수 Python (DP)

2023. 2. 26. 00:13·Algorithm (PS)
728x90

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

 

11057번: 오르막 수

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

www.acmicpc.net

규칙성을 찾으면 직관적으로 풀 수 있는 dp 문제였다 

봤더니 티어가 실버 1 이다 . 딱 그정도 수준인것 같긴 하다 ㅎㅎ..

말로 설명하기 어려워서 그림으로 그려보았다. 

1) 현재 N== 1, 즉 자리가 한자릿수일 때는 자기 자신이 오르막 수에 해당하므로 오르막 수가 1개이다. 

0, 1, 2, .. 9 이런 얘들이 한자릿수 오르막 수가 된다. dp[1][i] = 1값을 저장했다. 

 

2) 자리가 두자릿수일때부터 이전 자릿수에서의 오르막 수 개수를 재활용할 수 있다 

dp[i][j] += dp[i-1][k]

여기서 i 는 자릿수, j 는 시작하는 숫자, k 는 j 다음에 오는 숫자들이 된다. 

N = int(input())
dp = [[0] * 10 for _ in range(N+1)] # 0~9 와 자릿수
answer = 0
for i in range(10):
    dp[1][i] = 1 # 자기자신

if N == 1:
    print(sum(dp[N]))
    exit(0)

for i in range(2, N+1): # 자릿수 2, 3, ... N까지 연산 
    for j in range(0, 10): # 시작하는 숫자 0, 1, 2 ... 9 
        for k in range(j, 10): # j 다음에 올 수 있는 숫자 (dp 테이블에서  이전 자수 연산 값을 꺼내오기)
            dp[i][j] += dp[i-1][k]

print(sum(dp[N])%10007)
728x90

'Algorithm (PS)' 카테고리의 다른 글

[백준] 3584번: 가장 가까운 공통 조상 (Python/파이썬) - tree 문제  (0) 2023.02.27
[백준] 17141 연구소 2 Python  (0) 2023.02.27
[프로그래머스] 다단계 칫솔 판매 - Python (tree 문제)  (0) 2023.02.23
[백준] 21922번: 학부 연구생 민상 Python  (0) 2023.02.21
[백준] 10159 저울 (Python/파이썬) - 플로이드워셜  (0) 2023.02.20
'Algorithm (PS)' 카테고리의 다른 글
  • [백준] 3584번: 가장 가까운 공통 조상 (Python/파이썬) - tree 문제
  • [백준] 17141 연구소 2 Python
  • [프로그래머스] 다단계 칫솔 판매 - Python (tree 문제)
  • [백준] 21922번: 학부 연구생 민상 Python
minjiwoo
minjiwoo
Data Engineering과 Cloud Native 기술에 대해 Dive Deep 하는 플랫폼 엔지니어가 되는 것을 목표로 하고 있습니다. 경험과 공부한 내용을 기록하며 지속가능한 엔지니어가 되는 것이 꿈입니다.
minjiwoo
minji's engineering note
minjiwoo
전체
오늘
어제
  • 분류 전체보기 (613) N
    • Data Engineering (42)
      • Apache Spark (11)
      • Databricks & Delta Lake (9)
      • Airflow (3)
      • SQL (6)
      • Trouble Shooting (2)
      • Hadoop (2)
      • MLOps (1)
    • Cloud Engineering (104)
      • AWS (23)
      • Linux 🐧 (29)
      • Docker 🐳 (21)
      • Kubernetes ⚙️ (20)
      • Ansible (10)
    • Computer Science (87)
      • 네트워크 (9)
      • 운영체제 (25)
      • 정보처리기사 (48)
      • CS 기술 면접 스터디 (3)
    • Programming Languages (27)
      • Python (17)
      • C와 C++ (10)
    • Backend (5)
      • Django (2)
    • 프로젝트 (2)
      • 테크포임팩트 (2)
    • iOS (11)
      • 레이블러리 (2)
    • Algorithm (PS) (275)
      • LeetCode (6)
    • 개발일기 (30) N
      • 내돈내산 후기🎮 (3)
      • 개발자 취준생 (5) N
      • Today I Learned (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

  • Hi there

인기 글

태그

  • 데이터엔지니어링
  • ansible
  • 쿠버네티스
  • 프로그래머스
  • Kubernetes
  • 알고리즘
  • 리눅스
  • 스파크
  • 백준
  • Leetcode
  • 코딩테스트
  • EC2
  • SPARK
  • dp
  • 운영체제
  • 파이썬
  • python
  • docker
  • 클라우드
  • 데이터엔지니어
  • linux
  • Databricks
  • Swift
  • dfs
  • 백트래킹
  • 빅데이터
  • 데이터브릭스
  • BFS
  • 카카오코딩테스트
  • AWS

최근 댓글

최근 글

hELLO· Designed By정상우.v4.5.2
minjiwoo
[백준] 11057번: 오르막 수 Python (DP)
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.