728x90
๐ ๋ฐฑ์ค 2775 - ๋ถ๋ ํ์ฅ์ด ๋ ํ ์ผ
๋ฐฑ์ค 2775 - ๋ถ๋ ํ์ฅ์ด ๋ ํ ์ผ
๐ก ๋์ ํ์ด
์ด ๋ฌธ์ ๋ DP
, ์ฌ๊ท
๋ก ํ ์ ์์ง๋ง, DP
๋ก ํธ๋๋ฐฉ๋ฒ์ด ์๊ฐ์ด ํจ์ฌ ๋จ์ถ๋๋ค. ์ฌ๊ท
๋ก ํ๋๋ python3
์์ ์๊ฐ์ด๊ณผ์ ๊ฑธ๋ฆฌ๋ฏ๋ก pypy
๋ก ์ ์ถํด์ผํ๋ค.
DP ํ์ด๋ฐฉ๋ฒ์ด๋ค.
0
์ธต์i
๋i
๋ช ์ด ์ด๊ธฐ๋๋ฌธ์ ์ ์ผ ์๋๋[1, 2, 3, 4...]
๋ค.- ๋ฌธ์ ๋ ์ธต์๊ฐ ์ฆ๊ฐ ํ ๋๋ง๋ค ์ด์ ์ธต์์ 1ํธ๋ถํฐ bํธ๊น์ง ๋ํ๊ฐ์ ์ฌ์ฉํด์ผํ๋๋ฐ ์ด๋ DP๊ฐ ์ฐ์ธ๋ค.
arr[i] += arr[i-1]
๋ก 1ํธ๋ถํฐ bํธ๊น์ง ๊ฐ์ ๋์ ์ํจ๋ค.- ์ธต์๊ฐ ์ฌ๋ผ๊ฐ๋๋ 3๋ฒ ๋ฐ๋ณต๋ฌธ ๋ฐ๊นฅ์ ํ๋ ๋ ์ ์ธํ๋ค.
for _ in range(k)
์ฌ๊ท ํ์ด๋ฐฉ๋ฒ์ด๋ค. a: ์ธต
, b: ํธ
- ํ๋จ์ ์ฌ์ง์ฒ๋ผ
์ด์ index
+์๋ index
๋ฅผ ๋ํด์ค๋ค. - ์ข
๋ฃ ์กฐ๊ฑด์
a == 0: return b
,b == 1: return 1
์ด๋ค.
# DP
T = int(input())
for _ in range(T):
k = int(input())
n = int(input())
floor = [i for i in range(1, n+1)]
for _ in range(k):
for i in range(1, n):
floor[i] += floor[i-1]
print(floor[-1])
# ์ฌ๊ท
def check(a, b):
if not a:
return b
if b == 1:
return 1
return check(a, b-1) + check(a-1, b)
for _ in range(int(input())):
k = int(input())
n = int(input())
print(check(k, n))
๋ฐ์ํ
'Algorithm > ๋ฐฑ์ค(BOJ)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ ํ์ด์ฌ(python) ] ๋ฐฑ์ค 5554 - ์ฌ๋ถ๋ฆ ๊ฐ๋ ๊ธธ (0) | 2021.06.11 |
---|---|
[ ํ์ด์ฌ(python) ] ๋ฐฑ์ค 10833 - ์ฌ๊ณผ (0) | 2021.06.11 |
[ ํ์ด์ฌ(python) ] ๋ฐฑ์ค 1712 - ์์ต๋ถ๊ธฐ์ (0) | 2021.06.09 |
[ ํ์ด์ฌ(python) ] ๋ฐฑ์ค 2480 - ์ฃผ์ฌ์ ์ธ๊ฐ (0) | 2021.06.08 |
[ ํ์ด์ฌ(python) ] ๋ฐฑ์ค 2010 - ํ๋ฌ๊ทธ (0) | 2021.06.08 |
๋๊ธ