ํฐ์คํ ๋ฆฌ ๋ทฐ
728x90
๋ฐ์ํ
๋ฌธ์
๋ฌธ์ ํ์ด
N๊น์ง ์ซ์ ์ค K๊ฐ๋ฅผ ์ด์ฉํด์ N์ด ๋๋ ๊ฒฝ์ฐ์ ์๋ฅผ ๊ตฌํ๋ ๋ฌธ์ ์ด๋ค. ์ด๋ค ๋ฐฉ์์ผ๋ก ํ๋ฉด ์ข์์ง ๊ณ ๋ฏผํ๋ค๊ฐ, ๋จ์ํ N์ด 1์ธ ๊ฒฝ์ฐ๋ถํฐ ์์ํด์ K๊ฐ ์ฆ๊ฐํ ๊ฒฝ์ฐ ๊ฒฝ์ฐ์ ์๋ฅผ ์ฐพ์๋ณด์๋ค.
-
N์ด 1์ธ ๊ฒฝ์ฐ
-
K์ ๋ฐ๋ผ ๋ฐ์ํ๋ ๊ฒฝ์ฐ์ ์
- 1 : [1] → 1๊ฐ์ง
- 2 : [0 + 1], [1 + 0] → 2๊ฐ์ง
- 3 : [0 + 0 + 1], [0 + 1 + 0], [1 + 0 + 0] → 3๊ฐ์ง
- 4 : 4๊ฐ์ง
-
K์ ๋ฐ๋ผ ๋ฐ์ํ๋ ๊ฒฝ์ฐ์ ์
-
N์ด 2์ธ ๊ฒฝ์ฐ
-
K์ ๋ฐ๋ผ ๋ฐ์ํ๋ ๊ฒฝ์ฐ์ ์
- 1 : [2] → 1๊ฐ์ง
- 2 : [0 + 2], [1 + 1], [2 + 0] → 3๊ฐ์ง
- 3 : [0 + 0 + 2], [0 + 2 + 0], [2 + 0 + 0], [0 + 1 + 1], [1 + 1 + 0], [1 + 0 + 1] → 6๊ฐ์ง
- 4 : 10๊ฐ์ง
-
K์ ๋ฐ๋ผ ๋ฐ์ํ๋ ๊ฒฝ์ฐ์ ์
๊ฒฝ์ฐ์ ์๋ฅผ ์ผ์ผ์ด ๋ค ์ฐพ์๋ณด๋ ๊ฒ์ ์๋นํ ์๊ฐ์ ์์ํ๊ฒ ๋๋ค. ํ์ง๋ง, N์ด 1, 2์ธ ๊ฒฝ์ฐ๋ฅผ ๋์ดํด ๋ณด๋ฉด, ๋ชจ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ์ผ์ผ์ด ์ฐพ์ง ์๋๋ผ๋ ๋ฌธ์ ๋ฅผ ํ ์ ์์์ ์ ์ ์๋ค.
N | K = 1 | K = 2 | K = 3 | K = 4 | K = 5 |
1 | 1 | 2 | 3 | 4 | 5 |
2 | 1 | 3 | 6 | 10 | ? |
์์ ํ๋ฅผ ๋ณด๋ฉด N - 1์ผ ๋ K + 1์ธ ๊ฒฝ์ฐ์ ์์ N์ผ ๋ K์ธ ๊ฒฝ์ฐ์ ์์ ํฉ์ด ๋ฌธ์ ๋ฅผ ํ ์ ์๋ ์ ํ์์ด ๋๋ค. ๋ฐ๋ผ์ N์ด 2์ธ ๊ฒฝ์ฐ์ K๊ฐ 5์ธ ๊ฒฝ์ฐ์ ์๋ 5 + 10์ผ๋ก 15๊ฐ ๋๋ ๊ฒ์ ์ ์ ์๋ค.
์ฝ๋
from sys import stdin
if __name__ == '__main__':
n, k = map(int, stdin.readline().split())
dp = [[0] * 201 for _ in range(201)]
divisor = 1000000000
for i in range(k + 1):
dp[0][i] = 1
for i in range(1, n + 1):
for j in range(1, k + 1):
dp[i][j] = (dp[i][j - 1] + dp[i - 1][j]) % divisor
print(dp[n][k])
728x90
๋ฐ์ํ
'๐จโ๐ป ์ฝ๋ฉํ ์คํธ > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค: 1860 ๋ถ๋ถํฉ (0) | 2020.08.13 |
---|---|
๋ฐฑ์ค: 2003 ์๋ค์ ํฉ 2 (0) | 2020.08.13 |
๋ฐฑ์ค: 3055 ํ์ถ (0) | 2020.08.11 |
๋ฐฑ์ค: 15644 ๊ตฌ์ฌ ํ์ถ 3 (0) | 2020.08.08 |
๋ฐฑ์ค: 13459 ๊ตฌ์ฌ ํ์ถ (0) | 2020.08.07 |
๋๊ธ
๊ธ ๋ณด๊ดํจ
์ต๊ทผ์ ์ฌ๋ผ์จ ๊ธ
์ต๊ทผ์ ๋ฌ๋ฆฐ ๋๊ธ