ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

728x90
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ

 

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

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

www.acmicpc.net

 

๋ฌธ์ œ ํ’€์ด

 ์ด ๋ฌธ์ œ๋Š” 2 x n ํƒ€์ผ๋ง ๋ฌธ์ œ์—์„œ 2 x 2 ํƒ€์ผ์ด ์ถ”๊ฐ€ ๋˜์–ด, ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํƒ€์ผ์ด 2 x 1, 1 x 2, 2 x 2๋กœ 3๊ฐœ์ธ ๊ฒฝ์šฐ์— 2 x n์˜ ๊ณต๊ฐ„์— ํƒ€์ผ์„ ๋ถ™์ผ ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ๋ฌธ์ œ์ด๋‹ค.

 

Figure 1. n์— ๋”ฐ๋ฅธ ํƒ€์ผ๋ง ๊ฒฝ์šฐ์˜ ์ˆ˜

 ๊ทธ๋ฆผ 1์„ ๋ณด๋ฉด, n์ด ์ฆ๊ฐ€ํ•จ์— ๋”ฐ๋ผ 1, 3, 5, 11, 21๊ณผ ๊ฐ™์€ ๊ทœ์น™์„ ๋ณด์ด๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ด๋ฅผ ์‹์œผ๋กœ ๋‚˜ํƒ€๋‚ด๋ฉด `f(n) = f(n - 1) + 2 * f(n - 2)`๊ฐ€ ๋œ๋‹ค. ๋”ฐ๋ผ์„œ ํ•ด๋‹น ์‹์„ ์ฝ”๋“œ๋กœ ์ž‘์„ฑํ•˜๋ฉด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์ฝ”๋“œ

from sys import stdin


if __name__ == "__main__":
    n = int(stdin.readline())
    a, b = 1, 3
    for _ in range(1, n):
        a, b = b, a * 2 + b
    print(a % 10007)
728x90
๋ฐ˜์‘ํ˜•
๋Œ“๊ธ€
๊ธ€ ๋ณด๊ด€ํ•จ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€