Algorithm Problem/Python

[python] ๋ฐฑ์ค€ - 2133. ํƒ€์ผ ์ฑ„์šฐ๊ธฐ

deo2kim 2020. 10. 7. 10:50
๋ฐ˜์‘ํ˜•

๐Ÿค”๋ฌธ์ œ ํ•ด๊ฒฐ

  • S2 | DP

์ด๋Ÿฐ๋ฌธ์ œ๋Š” ์—ญ์‹œ ๋‹จ๊ณจ DP๋ฌธ์ œ

์ผ๋‹จ ์†์œผ๋กœ ๊ตฌํ•ด๋ดค๋‹ค.

          i == 0, 2, 4, 6 ( ํ™€์ˆ˜ ์ผ ๊ฒฝ์šฐ๋Š” ์ œ์™ธํ•จ )

๊ฒฝ์šฐ์˜์ˆ˜ == 1, 3, 11, 41

 

์ ํ™”์‹

dp[i] = dp[i-2] * 3 + (dp[2] ~ dp[i-2]) * 2 + 2

i๊ฒฝ์šฐ์˜์ˆ˜ = ์ด์ „์˜ ๊ฒฝ์šฐ์˜ ์ˆ˜ * 3 + ์ด์ „์˜ ๊ฒฝ์šฐ์˜ ์ˆ˜ ๋“ค * 2 + i๋งŒ ๋งŒ๋“œ๋Š” ๊ฒฝ์šฐ

 

๐Ÿ’ป์†Œ์Šค ์ฝ”๋“œ

N = int(input())
if N % 2:
    print(0)

else:
    dp = [0] * (N + 1)
    dp[0], dp[2] = 1, 3

    for i in range(4, N + 1, 2):
        dp[i] = dp[i - 2] * 3 + 2
        for j in range(2, i - 2, 2):
            dp[i] += dp[j] * 2

    print(dp[N])
 

 

๐Ÿ“•๋ฌธ์ œ ํ™•์ธ

์ถœ์ฒ˜: BACKJOON ONLINE JUDGE

๋งํฌ: https://www.acmicpc.net/problem/2133

 

2133๋ฒˆ: ํƒ€์ผ ์ฑ„์šฐ๊ธฐ

3×N ํฌ๊ธฐ์˜ ๋ฒฝ์„ 2×1, 1×2 ํฌ๊ธฐ์˜ ํƒ€์ผ๋กœ ์ฑ„์šฐ๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๊ตฌํ•ด๋ณด์ž.

www.acmicpc.net

๋ฐ˜์‘ํ˜•