์ตœ๋Œ€ 1 ๋ถ„ ์†Œ์š”

๋ฐฑ์ค€ ์‚ฌ์ดํŠธ ๋งํฌ

๋ฌธ์ œ

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

์•„๋ž˜ ๊ทธ๋ฆผ์€ 2ร—5 ํฌ๊ธฐ์˜ ์ง์‚ฌ๊ฐํ˜•์„ ์ฑ„์šด ํ•œ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์˜ ์˜ˆ์ด๋‹ค.

image

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— n์ด ์ฃผ์–ด์ง„๋‹ค. (1 โ‰ค n โ‰ค 1,000)

์ถœ๋ ฅ

์ฒซ์งธ ์ค„์— 2ร—n ํฌ๊ธฐ์˜ ์ง์‚ฌ๊ฐํ˜•์„ ์ฑ„์šฐ๋Š” ๋ฐฉ๋ฒ•์˜ ์ˆ˜๋ฅผ 10,007๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

์˜ˆ์ œ ์ž…๋ ฅ 1

2

์˜ˆ์ œ ์ถœ๋ ฅ 1

2

์˜ˆ์ œ ์ž…๋ ฅ 2

9

์˜ˆ์ œ ์ถœ๋ ฅ 2

55

๋ฌธ์ œ๋ฅผ ํ’€๋ฉด์„œ ๋ง‰ํ˜”๋˜ ๋ถ€๋ถ„

์„ธ๋กœ๋Š” ๋ฌด์กฐ๊ฑด 2์นธ, ๊ฐ€๋กœ๋Š” n๊ฐ’์— ๋”ฐ๋ผ ๋ณ€ํ•˜๊ธฐ ๋•Œ๋ฌธ์— dp(i) = dp(i-1) + dp(i-2)๋ผ๋Š” ์ ํ™”์‹์ด ๋‚˜์˜จ๋‹ค.

์ฝ”๋“œ

ver(1)
n = int(input())
dp = [0]*1001
dp[1] = 1
dp[2] = 2

for i in range(3,1001):
    dp[i] = dp[i-1] + dp[i-2]
print(dp[n]%10007)

๋Œ“๊ธ€๋‚จ๊ธฐ๊ธฐ