๋ฌธ์
https://www.acmicpc.net/problem/1010
๋ด ๋ฌธ์ ํ์ด
import sys
t = int(sys.stdin.readline().strip())
dp = [[0 for _ in range(31)] for _ in range(31)]
for i in range(1, 31):
for j in range(1, 31):
if i == 1:
dp[i][j] = j
elif i == j:
dp[i][j] = 1
elif i < j:
dp[i][j] = dp[i-1][j-1] + dp[i][j-1]
for _ in range(t):
n, m = map(int, sys.stdin.readline().strip().split())
print(dp[n][m])
๐ DP/์ํ/์กฐํฉ ๋ฌธ์ ์ด๊ณ , ๋๋ DP๋ก ๊ตฌํํ๋ค.
๋ค๋ฆฌ๋ฅผ ๋์ ์ ์๋ ๊ฒฝ์ฐ์ ์๋ฅผ ์์ ๊ทธ๋ฆผ์ผ๋ก ํํํ๊ณ ,
๊ทธ ๊ฒฝ์ฐ์ ์๋ ์๋์ ๊ฐ์ ๊ท์น์ ๊ฐ๋ ๊ฒ์ ์ ์ ์๋ค.
- n์ด 1์ผ ๊ฒฝ์ฐ์๋ m
- n์ด m๊ณผ ๊ฐ์ ๊ฒฝ์ฐ์๋ 1
- n์ด m๋ณด๋ค ์์ ๊ฒฝ์ฐ์๋ dp[n-1][m-1] + dp[n][m-1]
+ ๋๋ ์ด๋ ๊ฒ dp๋ฅผ ์ด์ฉํ์ฌ ํ์ดํ์ง๋ง,
์กฐํฉ์ ์ด์ฉํ๋ฉด ์ฝ๊ฒ ํ ์ ์๋ค๊ณ ํ๋ค,,!
< ๋ค๋ฅธ ํ์ด ์ฐธ๊ณ ์ฌ์ดํธ >
- https://yoonsang-it.tistory.com/33
- https://velog.io/@johnberman-j/%EB%B0%B1%EC%A4%80-1010%EB%B2%88-%EB%8B%A4%EB%A6%AC-%EB%86%93%EA%B8%B0-%ED%8C%8C%EC%9D%B4%EC%8D%AC
๐ก ํผ๋๋ฐฑ
๋์ด๋๊ฐ ๋ฎ์ ๋ฌธ์ ๋ก ๋์์์ง๋ง,,
์กฐํฉ์ ์ฌ์ฉํด์ ํ์ดํ๋ ๋ฌธ์ ๋ฅผ ์ฒ์ ์ ํด๋ณด๋ ๊ฒ ๊ฐ์์ ์ด๋ ๊ฒ ๊ธ์ ๋จ๊ฒจ๋๋๋ค.
์กฐํฉ๋ก ๋ ๊ณต๋ถํด๋๋ฉด ๋ฌธ์ ํ์ดํ ๋ ํธํ ์ ์์ ๊ฒ ๊ฐ๋ค.
'4๏ธโฃ Python > Problem Solving' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Python Algorithm] ๊ฐ์์ค ๋ฐฐ์ BOJ #11000 (0) | 2022.06.13 |
---|---|
[Python Algorithm] ์นด๋ ๊ตฌ๋งคํ๊ธฐ BOJ #11052 (0) | 2022.05.26 |
[Python Algorithm] LCS BOJ #9251 (0) | 2022.05.26 |
[Python Algorithm] ๋์ 1 BOJ #2293 (0) | 2022.05.26 |
[Python Algorithm] AC BOJ #5430 (0) | 2022.05.24 |
๋๊ธ