[ 2023-03-20๐ŸŠ TIL ]

Burkeyยท2023๋…„ 3์›” 20์ผ
0

TIL

๋ชฉ๋ก ๋ณด๊ธฐ
64/157

๋ฐฑ์ค€ 10844๋ฒˆ

import sys

input = sys.stdin.readline

n = int(input())

li = [[0, 1, 1, 1, 1, 1, 1, 1, 1, 1]] + \ #1์˜ ์ž๋ฆฌ์ˆ˜๋Š” ๊ฐ๊ฐ ๊ณ„๋‹จ์ˆ˜๊ฐ€ ์ž๊ธฐ์ž์‹ ๋ฐ–์—์—†์Œ
    [[0 for _ in range(10)] for _ in range(n-1)]

for i in range(1, n):
    for j in range(10):
        if j == 0:
            li[i][j] = li[i-1][1] #0๋กœ 1์˜ ์ž๋ฆฌ ์ˆ˜๋Š” ๊ณ„๋‹จ์ˆ˜๊ฐ€ 1๋กœ ๋๋‚˜๋Š” ์ˆ˜ ๋ฐ–์— ์—†์Œ
        elif j == 9:
            li[i][j] = li[i-1][8] #9๋กœ 1์˜ ์ž๋ฆฌ ์ˆ˜๋Š” ๊ณ„๋‹จ์ˆ˜๊ฐ€ 8๋กœ ๋๋‚˜๋Š” ์ˆ˜ ๋ฐ–์— ์—†์Œ
        else:
        	#๊ทธ ์™ธ ์ˆ˜๋Š” ๊ณ„๋‹จ์ˆ˜๊ฐ€ 2๊ฐœ์”ฉ ์กด์žฌ
            li[i][j] = li[i-1][j-1] + li[i-1][j+1]

print(sum(li[n-1]) % 1000000000)

์ฒ˜์Œ์— ํ’€์—ˆ๋Š”๋ฐ ๋„ˆ๋ฌด ์–ด์ง€๋Ÿฝ๊ณ  ๋”๋Ÿฝ๊ฒŒ ํ’€์–ด์„œ..ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ใ…‹ ๋ฉ”๋ชจ๋ฆฌ ์ดˆ๊ณผ๊ฐ€(๋”ฐ๋กœ ํ™•์ธํ•ด๋ณด๋‹ˆ ์‹œ๊ฐ„์ดˆ๊ณผ๋„ ๋ฐœ์ƒ ใ…‹ใ…‹ใ…‹) ๋ฐœ์ƒํ•˜์˜€๋‹ค.. ์ด๊ฑธ DP๋ผ๊ณ  ๋ถ€๋ฅผ ์ˆ˜ ์žˆ๋‚˜ ๋ชจ๋ฅด๊ฒ ๋‹ค.

๊ฒฐ๊ตญ ๊ตฌ๊ธ€์˜ ๋„์›€์„ ๋ฐ›์•„์„œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์˜€์Šต๋‹ˆ๋‹ค..ใ… 

๋‚ด๊ฐ€ ์“ด ์ฝ”๋“œ์˜ ์žฅ์ ์€ ์ž…๋ ฅ์œผ๋กœ ๋“ค์–ด์˜จ ์ž๋ฆฟ์ˆ˜์˜ ๊ณ„๋‹จ์ˆ˜๊ฐ€ ์–ด๋–ค๊ฒƒ์ด ์žˆ๋Š”์ง€ ํ™•์ธ ๊ฐ€๋Šฅํ•˜๋‹ค๋Š”๊ฑฐ?
์•„๋ž˜์— ์ฝ”๋“œ๊ฐ€ ์ œ๊ฐ€ ์ฒ˜์Œ์— ์ž‘์„ฑํ•œ ์ฝ”๋“œ์ž…๋‹ˆ๋‹ค. ํ™•์ธํ•ด๋ณด๋‹ˆ..ํ•œ n์ด 20์ผ ๋•Œ๊นŒ์ง€๋Š” ํ™•์ธ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค ใ…‹ใ…‹ใ…‹

import sys

input = sys.stdin.readline

n = int(input())

li = [str(i) for i in range(10)]
result = li
if n == 1:
    print(9)
else:
    start = 1
    for c in range(n-1):
        end = len(result)
        re = []
        for i in range(start, end):
            check = int(result[i][c])
            if (check - 1) == -1:
                re.append(result[i] + str(check + 1))
            elif (check + 1) == 10:
                re.append(result[i] + str(check - 1))
            else:
                re.append(result[i] + str(check + 1))
                re.append(result[i] + str(check - 1))
        start = end
        result += re
    print(len(re) % 1000000000)
profile
์Šคํƒฏ ์˜ฌ๋ฆฌ๋Š” ์ค‘

0๊ฐœ์˜ ๋Œ“๊ธ€