๋ฐฑ์ค 2775๋ฒ
t๋ ๋ค์ด์ค๋ ์
๋ ฅ์ ๊ฐ์ ๊ฐฏ์
k๋ ์ถ๋ ฅ ํ ์ํํธ์ ์ธต, k์ธต์์ ์๋ n๋ฒ์งธ ์ง
ํด๋น ๋ฌธ์ ์ ๋์ค๋ ์ํํธ์ ์ด ์ ์๋ ๊ท์น์ k์ธต nํธ ์ง์ ์ด๊ณ ์ถ์ผ๋ฉด
k-1์ธต์ 1๋ฒ์งธ ์ง๋ถํฐ nํธ ์ง๊น์ง ์ฌ๋ ์ฌ๋์ ํฉ์ ๊ฐฏ์์ ๋์ผํ ์์ ์ฌ๋ ๋ง์ด ์ด ์ ์์ต๋๋ค.
0์ธต์ ์ฌ๋ ์ฌ๋์ n์ ๊ฐ๊ณผ ๋์ผํ ์ฌ๋์ด ์ด๊ณ ์์
=> 0์ธต 1ํธ -> 1๋ช
, 0์ธต 2ํธ-> 2๋ช
, ... 14ํธ -> 14๋ช
๊น์ง
k์ธต n๋ฒ์งธ์ ์ฌ๋ ์ฌ๋๋ค์ ์๋ฅผ ๊ตฌํ๋ ๋ฌธ์ ์ ๋๋ค.
import sys
input = sys.stdin.readline
t = int(input())
apt = [[n for n in range(1, 16)]] # ์ํํธ 2์ฐจ์ ๋ฐฐ์ด, 0์ธต์ ์ฌ๋ ์ฌ๋์ ๋ฃ์ด๋จ๋ค.
if (t > 1):
for i in range(1, 15):
apt_li = [1 for _ in range(1, 16)] # ํฌ๊ธฐ๊ฐ 15์ธ ๋ฐฐ์ด ์ ์ธ 0์ธ๋ฑ์ค๋ 1
for j in range(1, 15):
apt_li[j] = apt_li[j-1] + apt[i-1][j]
apt.append(apt_li)
for _ in range(t):
k = int(input())
n = int(input())
print(apt[k][n-1])
ํด๋น ๋ฌธ์ ๋ dp๋ฅผ ์ฌ์ฉํ์ฌ ํ์์ต๋๋ค.
์ด์ ์ธ๋ฑ์ค์ ๊ฐ๊ณผ ์ด์ ํ์ ๋์ ์ธ๋ฑ์ค๋ฅผ ๋ํ๋ฉด ํด๋น ๊ฐ์ด ๋์ต๋๋ค.(ํฉํ ๋ฆฌ์ผ ํธ๋ ๋ฒ๊ณผ ๊ฑฐ์ ์ ์ฌ)
์ฒ์ ์๋ฃ๊ตฌ์กฐ๋ฅผ ์์ํ์ ๋ ํ๋ ค๊ณ ์๋ํ๋ ๋ฌธ์ ์๋๋ฐ ๊ทธ๋๋ ํด๊ฒฐ ๋ชปํ๊ณ ๋์ด๊ฐ์ง๋ง ์ค๋ ํด๊ฒฐํ ๊ฒ์ ๋ณด๋ ๊ณต๋ถ๋ฅผ ํ๋๊ฒ์ด ํ๊ณ ์์ ์๋์๋ค๋ ์๊ฐ์ด ๋ค์ด ๋ฟ๋ฏํฉ๋๋ค. :)