๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
4๏ธโƒฃ Python/Problem Solving

[Python Algorithm] 2×n ํƒ€์ผ๋ง 2 BOJ #11727

by seolhee2750 2022. 2. 2.
๋ฌธ์ œ

https://www.acmicpc.net/problem/11727

 

11727๋ฒˆ: 2×n ํƒ€์ผ๋ง 2

2×n ์ง์‚ฌ๊ฐํ˜•์„ 1×2, 2×1๊ณผ 2×2 ํƒ€์ผ๋กœ ์ฑ„์šฐ๋Š” ๋ฐฉ๋ฒ•์˜ ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค. ์•„๋ž˜ ๊ทธ๋ฆผ์€ 2×17 ์ง์‚ฌ๊ฐํ˜•์„ ์ฑ„์šด ํ•œ๊ฐ€์ง€ ์˜ˆ์ด๋‹ค.

www.acmicpc.net

 

๋‚ด ๋ฌธ์ œ ํ’€์ด
n = int(input())
if n == 1:
    print(1)
elif n == 2:
    print(3)
else:
    memory = [1, 3]
    for i in range(2, n):
        memory.append((memory[i-2]*2 + memory[i-1]) % 10007)
    print(memory[-1])

๐Ÿ‘‰ DP ๋ฌธ์ œ๋กœ, ์ ํ™”์‹ / ๋ฉ”๋ชจ์ด์ œ์ด์…˜ ์‚ฌ์šฉํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

p[n] = p[n-1] + p[n-2]*2 ์˜ ์ ํ™”์‹์— ๋งž๊ฒŒ ํ’€์–ด์ฃผ์—ˆ๋‹ค.

 

๐Ÿ’ก ํ”ผ๋“œ๋ฐฑ
  • ์ ํ™”์‹ ๋ฌธ์ œ์ง€๋งŒ, n์— ๋”ฐ๋ฅธ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๊ตฌํ•ด์ฃผ๋Š”๋ฐ์— ์กฐ๊ธˆ ์‹œ๊ฐ„์„ ํ• ์• ํ•ด์•ผ ํ•˜๋Š” ๋ฌธ์ œ์˜€๋‹ค.

๋Œ“๊ธ€