๋ฌธ์
3×N ํฌ๊ธฐ์ ๋ฒฝ์ 2×1, 1×2 ํฌ๊ธฐ์ ํ์ผ๋ก ์ฑ์ฐ๋ ๊ฒฝ์ฐ์ ์๋ฅผ ๊ตฌํด๋ณด์.
์ ๋ ฅ
์ฒซ์งธ ์ค์ N(1 ≤ N ≤ 30)์ด ์ฃผ์ด์ง๋ค.
์ถ๋ ฅ
์ฒซ์งธ ์ค์ ๊ฒฝ์ฐ์ ์๋ฅผ ์ถ๋ ฅํ๋ค.
https://www.acmicpc.net/problem/2133
๐ก ํ์ด ๋ฐ ์ฝ๋
n = int(input())
dp = [0] * (n + 1)
dp[0] = 1
for i in range(2, n+1, 2):
dp[i] += dp[i-2] * 3
for j in range(0, i-2, 2):
dp[i] += dp[j] * 2
print(dp[n])
๊ฐ๋จํด ๋ณด์ด์ง๋ง ๋ง๋งํ๊ฒ ๋ด์๋ ์๋๋ DP ๋ฌธ์ ์ด๋ค. ์ ํ์์ ์ธ์๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค. ์ฐ์ , n์ด ํ์์ผ ๋๋ ํ์ผ์ ์ฑ์ธ ์ ์์ผ๋ฏ๋ก 0์ ์ถ๋ ฅํด์ผํ๊ณ , n์ด ์ง์๋ผ๋ ๊ฐ์ ํ์ ์ ํ์์ ์ ์ด๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
dp[i] = dp[i-2] * 3 + dp[i-4] * 2 + dp[i-6] * 2 + ... + dp[0] * 2
์ด๋, dp[0]์๋ ์์๋ก 1์ด ์ ์ฅ๋์ด ์์ดํ ํ๋ค. ์์ ๊ฐ์ ์ ํ์์ด ๋์ค๋ ์ด์ ๋ 3*2 ํ์ผ์ ์ฑ์ฐ๋ ๊ฒฝ์ฐ์ ์๋ 3๊ฐ, ๋๋จธ์ง 3*n ํ์ผ์ ์ฑ์ด ๊ฒฝ์ฐ์ ์๋ ๊ฐ๊ฐ 2๊ฐ ์ด๊ธฐ ๋๋ฌธ์ด๋ค.
'Algorithm > ๐ Baekjoon Judge' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ] ๋ฐฑ์ค 17144๋ฒ ๋ฏธ์ธ๋จผ์ง ์๋ ! - ํ์ด์ฌ(Python) (0) | 2022.08.26 |
---|---|
[BOJ] ๋ฐฑ์ค 15685๋ฒ ๋๋๊ณค ์ปค๋ธ - ํ์ด์ฌ(Python) (0) | 2022.08.23 |
[BOJ] ๋ฐฑ์ค 2294๋ฒ ๋์ 2 - ํ์ด์ฌ(Python) (0) | 2022.08.18 |
[BOJ] ๋ฐฑ์ค 1890๋ฒ ์ ํ - ํ์ด์ฌ(Python) (0) | 2022.08.13 |
[BOJ] ๋ฐฑ์ค 16236๋ฒ ์๊ธฐ ์์ด - ํ์ด์ฌ(Python) (0) | 2022.07.30 |