ํฐ์คํ ๋ฆฌ ๋ทฐ
728x90
๋ฐ์ํ
๋ฌธ์
๋ฌธ์ ํ์ด
3xN ํฌ๊ธฐ์ ๋ฒฝ์ 2x1, 1x2 ํฌ๊ธฐ์ ํ์ผ๋ก ์ฑ์ฐ๋ ๊ฒฝ์ฐ๋ฅผ ๊ตฌํ๋ ๋ฌธ์ ์ด๋ค. ๋ฌธ์ ๋ฅผ ํ๊ธฐ ์ํด ๊ฒฝ์ฐ๋ฅผ ์ฐพ์๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ์ ๊ท์น์ ์ฐพ์ ์ ์๋ค.
- N์ด ํ์์ธ ๊ฒฝ์ฐ ๊ฒฝ์ฐ์ ์๋ 0์ด๋ค.
- 2x1, 1x2๋ก๋ N์ด ํ์์ธ ๊ฒฝ์ฐ ์ฑ์ธ ์ ์๋ค.
- N = 2
- 3๊ฐ์ง ๊ฒฝ์ฐ์ ์
- N = 4
- 2์ ๊ฒฝ์ฐ์ ์ * 3 + 2
- N = 6
- 4์ ๊ฒฝ์ฐ์ ์ * 3 + 2์ ๊ฒฝ์ฐ์ ์ * 2 + 2
- N = 8
- 6์ ๊ฒฝ์ฐ์ ์ * 3 + 4์ ๊ฒฝ์ฐ์ ์ * 2 + 2์ ๊ฒฝ์ฐ์ ์ * 2 + 2
- `dp[N] = dp[N - 2] * 3 + dp[N - 4] * 2 + ... dp[N-N] * 2`
์ฝ๋
from sys import stdin
if __name__ == '__main__':
n = int(stdin.readline())
dp = [0] * 31
dp[0], dp[2] = 1, 3
for i in range(4, n + 1):
dp[i] = dp[i - 2] * 3
for j in range(4, i + 1, 2):
dp[i] += dp[i - j] * 2
print(dp[n])
728x90
๋ฐ์ํ
'๐จโ๐ป ์ฝ๋ฉํ ์คํธ > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค: 17089 ์ธ ์น๊ตฌ (0) | 2020.10.10 |
---|---|
๋ฐฑ์ค: 16943 ์ซ์ ์ฌ๋ฐฐ์น (2) | 2020.10.10 |
๋ฐฑ์ค: 2579 ๊ณ๋จ ์ค๋ฅด๊ธฐ (0) | 2020.10.06 |
๋ฐฑ์ค: 16637 ๊ดํธ ์ถ๊ฐํ๊ธฐ (4) | 2020.10.06 |
๋ฐฑ์ค: 17070 ํ์ดํ ์ฎ๊ธฐ๊ธฐ 1 (0) | 2020.10.05 |
๋๊ธ
๊ธ ๋ณด๊ดํจ
์ต๊ทผ์ ์ฌ๋ผ์จ ๊ธ
์ต๊ทผ์ ๋ฌ๋ฆฐ ๋๊ธ