ํฐ์คํ ๋ฆฌ ๋ทฐ
๋ฌธ์
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์ ๊ณต๊ฐ์ ํ์ผ์ ๋ถ์ผ ์ ์๋ ๊ฒฝ์ฐ์ ์๋ฅผ ๊ตฌํ๋ ๋ฌธ์ ์ด๋ค.

๊ทธ๋ฆผ 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)
'๐จโ๐ป ์ฝ๋ฉํ ์คํธ > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค: 11052 ์นด๋ ๊ตฌ๋งคํ๊ธฐ (0) | 2020.06.29 |
---|---|
๋ฐฑ์ค: 9095 1, 2, 3 ๋ํ๊ธฐ (0) | 2020.06.29 |
๋ฐฑ์ค: 11726 2xn ํ์ผ๋ง (0) | 2020.06.28 |
๋ฐฑ์ค: 1463 1๋ก ๋ง๋ค๊ธฐ (0) | 2020.06.28 |
๋ฐฑ์ค: 11576 Base Conversion (0) | 2020.06.27 |