[BOJ] 10844 ์ฌ์ด ๊ณ๋จ ์ (Python / ํ์ด์ฌ)

๐งท ๋ฌธ์
https://www.acmicpc.net/problem/10844
์ ์ n์ด ์ฃผ์ด์ก์ ๋, ๊ธธ์ด๊ฐ n์ธ ๋ชจ๋ ์๋ฆฌ์์ ์ฐจ์ด๊ฐ 1์ด ๋๋ ๊ณ๋จ์์ ๊ฐ์๋ฅผ ๊ตฌํ๋ ๋ฌธ์ ์ด๋ค.
๐ ํ์ด
์ด ๋ฌธ์ ๋ DP table์ 1์ฐจ์์ด ์๋ 2์ฐจ์์ผ๋ก ๊ตฌ์ฑํด์ผ ํด๊ฒฐํ ์ ์๋ค.
Step 1.
๋จผ์ DP table์ d[์๋ฆฌ์][๋์๋ฆฌ ์ซ์] = ๊ฒฝ์ฐ์ ์
๋ก ๊ตฌ์ฑํ๋ค.
Step 2.
์๋ฆฌ์ | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 |
---|---|---|---|---|---|---|---|---|---|---|
1 | 0 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 | 1 |
2 | 1 | 1 | 2 | 2 | 2 | 2 | 2 | 2 | 2 | 1 |
3 | 1 | 3 | 3 | 4 | 4 | 4 | 4 | 4 | 3 | 2 |
์๋ฆฌ์๊ฐ 1์ผ๋๋ถํฐ ๋ณด๋ฉด, ์๋ฆฌ์๊ฐ 1์ผ๋๋ ๋น์ฐํ๊ฒ๋ ๊ฒฝ์ฐ์ ์๊ฐ 1์ด๋ค.
์๋ฆฌ์๊ฐ 2์ผ๋๋ถํฐ๋ ๋งจ ๋ค์ 0 ๋๋ 9๊ฐ ์ค๋ ๊ฒฝ์ฐ ํน์ํ๋ค. ์ฒซ๋ฒ์งธ๋ก, 0์ผ๋ก ๋๋๋ ๊ฒฝ์ฐ ์๋ฆฌ์ - 1
์ ๋์๋ฆฌ ์ซ์๊ฐ 1
์ธ ๊ฒฝ์ฐ๋ง ๊ฐ๋ฅํ๋ค. ๋ง์ฐฌ๊ฐ์ง๋ก, 9๋ก ๋๋๋ ๊ฒฝ์ฐ์๋ ์๋ฆฌ์ - 1
์ ๋์๋ฆฌ ์ซ์๊ฐ 8
์ธ ๊ฒฝ์ฐ๋ง ๊ฐ๋ฅํ๋ฏ๋ก ๊ฐ์ d[i][j] = d[i-1][1]
, d[i][j] = d[i-1][8]
๋ก ํํํ ์ ์๋ค.
๋์๋ฆฌ ์ซ์๊ฐ 1๋ถํฐ 8๊น์ง๋ ๋ฌธ์ ์ ๋์์๋ฏ์ด ๊ณ๋จ์์ ์ ์๋ฅผ ์ด์ฉํ์ฌ ์ฐจ์ด๊ฐ 1์ด ๋๋๋ก DP table์ ๊ตฌ์ฑํด์ค๋ค. ์ฝ๋๋ก ํํํ๋ฉด d[i][j] = d[i-1][j-1] + d[i-1][j+1]
์ด๋ ๊ฒ ํํํ ์ ์๋ค.
Step 3.
๋ง์ง๋ง์ผ๋ก ๋ฌธ์ ์์ "์ ๋ต์ 1,000,000,000์ผ๋ก ๋๋ ๋๋จธ์ง๋ฅผ ์ถ๋ ฅํ๋ค." ๋ผ๊ณ ๋์์์์ผ๋ฏ๋ก n์๋ฆฌ ์ซ์์ ๋ชจ๋ ๊ฒฝ์ฐ์ ์์ ํฉ์์ 1,000,000,000์ ๋๋ ๋๋จธ์ง๋ฅผ ์ถ๋ ฅํ๋ค.
๐ ๋์ ์ฝ๋
def solution(x): d = [[0] * 10 for _ in range(101)] for i in range(1, 10): d[1][i] = 1 for i in range(2, n+1): for j in range(10): if j == 0: d[i][j] = d[i-1][1] elif j == 9: d[i][j] = d[i-1][8] else: d[i][j] = d[i-1][j-1] + d[i-1][j+1] return sum(d[x]) % 1000000000 if __name__ == "__main__": n = int(input()) print(solution(n))
'Algorithm > Problem Solving' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ] 1699 ์ ๊ณฑ์์ ํฉ (Pyhton / ํ์ด์ฌ) (0) | 2021.08.17 |
---|---|
[BOJ] 11053 ๊ฐ์ฅ ๊ธด ์ฆ๊ฐํ๋ ๋ถ๋ถ ์์ด (Pyhton / ํ์ด์ฌ) (0) | 2021.08.04 |
[BOJ] 15990 1, 2, 3 ๋ํ๊ธฐ 5 (Python / ํ์ด์ฌ) (0) | 2021.08.01 |
[BOJ] 11052 ์นด๋ ๊ตฌ๋งคํ๊ธฐ (Python / ํ์ด์ฌ) (0) | 2021.08.01 |
[BOJ] 2004 ์กฐํฉ 0์ ๊ฐ์ (Python / ํ์ด์ฌ) (0) | 2021.07.30 |
๋๊ธ
์ด ๊ธ ๊ณต์ ํ๊ธฐ
-
๊ตฌ๋
ํ๊ธฐ
๊ตฌ๋ ํ๊ธฐ
-
์นด์นด์คํก
์นด์นด์คํก
-
๋ผ์ธ
๋ผ์ธ
-
ํธ์ํฐ
ํธ์ํฐ
-
Facebook
Facebook
-
์นด์นด์ค์คํ ๋ฆฌ
์นด์นด์ค์คํ ๋ฆฌ
-
๋ฐด๋
๋ฐด๋
-
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
๋ค์ด๋ฒ ๋ธ๋ก๊ทธ
-
Pocket
Pocket
-
Evernote
Evernote
๋ค๋ฅธ ๊ธ
-
[BOJ] 1699 ์ ๊ณฑ์์ ํฉ (Pyhton / ํ์ด์ฌ)
[BOJ] 1699 ์ ๊ณฑ์์ ํฉ (Pyhton / ํ์ด์ฌ)
2021.08.17 -
[BOJ] 11053 ๊ฐ์ฅ ๊ธด ์ฆ๊ฐํ๋ ๋ถ๋ถ ์์ด (Pyhton / ํ์ด์ฌ)
[BOJ] 11053 ๊ฐ์ฅ ๊ธด ์ฆ๊ฐํ๋ ๋ถ๋ถ ์์ด (Pyhton / ํ์ด์ฌ)
2021.08.04 -
[BOJ] 15990 1, 2, 3 ๋ํ๊ธฐ 5 (Python / ํ์ด์ฌ)
[BOJ] 15990 1, 2, 3 ๋ํ๊ธฐ 5 (Python / ํ์ด์ฌ)
2021.08.01 -
[BOJ] 11052 ์นด๋ ๊ตฌ๋งคํ๊ธฐ (Python / ํ์ด์ฌ)
[BOJ] 11052 ์นด๋ ๊ตฌ๋งคํ๊ธฐ (Python / ํ์ด์ฌ)
2021.08.01
๋๊ธ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.