[Python] 백준 #110570- 오르막 수

2021. 12. 21. 17:00·코딩테스트/백준[Python]

문제


 

11057번: 오르막 수

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

www.acmicpc.net

코드


My answer

from sys import stdin

n = int(stdin.readline())
tmp=[i for i in range(1,10)]
dp= [[0] * 10 for _ in range(n + 1)]
dp[0]=[1,1,1,1,1,1,1,1,1,1]
for i in range(1,n+1):
    for j in range(0,10):
        if(j==0):
            dp[i][j]=dp[i-1][j]
        else:
            dp[i][j]=dp[i][j-1]+dp[i-1][j]
#print(dp[n-1])
print(sum(dp[n-1])%10007)

Another answer

n = int(input())
a = [1]*10
for j in range(1,n):
    for i in range(1,10):
        a[i] += a[i-1]
print(sum(a)%10007)

 

풀이


바로 전에 쉬운계단수를 해결하고 나니까 엄청 쉬웠다. 거의 푸는 방법이 동일했기 때문이다. 우선 나는 이전문제처럼 dp[i][j]에서 i를 자릿수,j를 끝자리로 계산을 해봤다. 아 그리고 우선 말해둘 것이 맨처음에 문제를 맞게 푼것같은데 틀렸었는데 그 이유는 문제안에 수는 0으로 시작할 수 있다. 라는 이상한 조건때문이었다;; 이걸 생각하고 풀이를 해보겠다. 우선 자릿수가 1이고 끝자리가0인 dp[1][0]은 0으로 하나 dp[1][1]도 1로하나. 이렇게 dp[1]배열은 전부 자기자신 하나이므로 1이 나온다. 이후 dp[2][0]은 00으로 한개, dp[2][1]은 01,11로 두개이다. 이 01은 dp[1][0]에 1을 붙인것 11은 dp[1][1]에 1을 붙인것이다. 이런식으로 반복하다보면 dp[i][j]는 dp[i][j-1]+dp[i-1][j]라는 식을 얻을 수 있다. 끝자리가 0인 경우만 예외로 무조건 1이다. 나는 이렇게 2차원배열로 쉬운계단수와 동일하게 생각해서 풀었는데, 아래 코드는 똑같은데 이걸 1차원 배열에서 구현했다. 같은 방법도 이렇게 단순하게 만드는 것도 정말 멋있다... 메모리도 훨씩 적게 들고..부럽다..

728x90

'코딩테스트 > 백준[Python]' 카테고리의 다른 글

[Python] 백준 #9465- 스티커[try_again]  (0) 2021.12.21
[Python] 백준 #2193 - 이친수  (0) 2021.12.21
[Python] 백준 #10844- 쉬운 계단 수[Try_again]  (0) 2021.12.21
[Python] 백준 #9095- 1,2,3 더하기  (0) 2021.12.17
[Python] 백준 #11727- 2xn타일링 2  (1) 2021.12.12
'코딩테스트/백준[Python]' 카테고리의 다른 글
  • [Python] 백준 #9465- 스티커[try_again]
  • [Python] 백준 #2193 - 이친수
  • [Python] 백준 #10844- 쉬운 계단 수[Try_again]
  • [Python] 백준 #9095- 1,2,3 더하기
창빵맨
창빵맨
  • 창빵맨
    Let's be Developers
    창빵맨
    로그인/로그아웃
  • 전체
    오늘
    어제
    • 분류 전체보기 (471)
      • 알쓸신잡 (79)
      • ML & DL (85)
        • Computer v.. (22)
        • NLP (22)
        • 파이썬 머신러닝 완.. (3)
        • 개념정리 (38)
      • 리눅스 (21)
      • 프로젝트 (29)
        • 산불 발생 예측 (6)
        • 음성비서 (12)
        • pdf 병합 프로그.. (0)
        • 수위 예측 (5)
        • 가짜 뉴스 분류 (5)
        • 전력사용량 예측 (1)
      • 코딩테스트 (217)
        • 프로그래머스[Pyt.. (17)
        • 프로그래머스[Fai.. (3)
        • 백준[Python] (160)
        • 이것이취업을위한코딩.. (18)
        • 파이썬 알고리즘 (19)
      • 데이터분석실습 (25)
        • 데이터 과학 기반의.. (18)
        • 헬로 데이터 과학 (7)
      • 메모장 (0)
      • 잡담 (4)
  • Personal

    GITHUB
    Instagram
  • 공지사항

  • 인기 글

  • 태그

    BFS
    이코테
    dp
    이분탐색
    그리디
    이것이취업을위한코딩테스트다
    백준
    DFS
    파이썬
    나동빈
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3

HOME

HOME

상단으로

티스토리툴바