๐ŸŒžAlgorithm/๐Ÿ”ฅBaekjoon

[Baekjoon] 11726_2×n ํƒ€์ผ๋ง

๋ฟŒ์•ผ._. 2022. 3. 1. 15:26

Silver III

๋ฌธ์ œ(์ถœ์ฒ˜: https://www.acmicpc.net/problem/11726)

<2×n ํƒ€์ผ๋ง>

๋ฌธ์ œ 

 

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

 

์ž…๋ ฅ

 

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

 

์ถœ๋ ฅ 

 

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

 

 

๋ฌธ์ œ ํ’€์ด

- my solution

 

if __name__=='__main__':
    n=int(input())

    dp=[1,2]

    for i in range(2,n):
        dp.append((dp[i-1]+dp[i-2])%10007)

    print(dp[n-1])

 

2 × 1 : 1

2 × 2 : 2

2 × 3 : 3

2 × 4 : 5

2 × 5 : 8

 

๊ฐ ๊ฒฝ์šฐ์˜ ์ˆ˜

 

๊ณผ ๊ฐ™์ด 2 ×n์„ ์ฑ„์šฐ๊ธฐ ์œ„ํ•œ ๋ฐฉ๋ฒ•์˜ ์ˆ˜๋Š” 2 ×(n-1) + 2 ×(n-2)๋ฅผ ํ†ตํ•ด์„œ ๊ตฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ์—ˆ๋‹ค.

 


์ƒ๊ฐ๐Ÿค”

 

๊ทœ์น™๋งŒ ์ฐพ์œผ๋ฉด ์‰ฝ๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ์˜€๋‹ค.