๊ธฐ๋ก๋ฐฉ

BOJ_11727 : 2×n ํƒ€์ผ๋ง 2 ๋ณธ๋ฌธ

CodingTest/Python

BOJ_11727 : 2×n ํƒ€์ผ๋ง 2

Soom_1n 2022. 9. 6. 21:02

๐Ÿ‘‰ ๋ฌธ์ œ๋งํฌ

 

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

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

www.acmicpc.net



๐Ÿ”ธ ๋ฌธ์ œ ๋ถ„์„ ๐Ÿ”ธ

  • 1x2, 2x1, 2x2 ํƒ€์ผ์„ ์ฑ„์šฐ๋Š” ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.
  • ์ ํ™”์‹์€ dp[n] = dp[n-1] + dp[n-2]*2 ์ด๋‹ค.

๐Ÿ”ธ ์ฝ”๋“œ ๐Ÿ”ธ

arr = [1,1]

for _ in range(int(input())-1):
    arr.append((arr[-1]+arr[-2]*2)%10007)

print(arr[-1])

๐Ÿ”ธ ์ฝ”๋“œ ํ•ด์„ ๐Ÿ”ธ

  • ๋ฆฌ์ŠคํŠธ์˜ ์ดˆ๊ธฐ๊ฐ’์„ 1,1๋กœ ๋‘๊ณ  ์ ํ™”์‹์„ ์ ์šฉํ•œ๋‹ค.
  • ๋ฌธ์ œ ์กฐ๊ฑด์— ๋”ฐ๋ผ 10007์˜ ๋‚˜๋จธ์ง€๋กœ ๊ณ„์‚ฐํ•œ๋‹ค.

๐Ÿ”ธ end ๐Ÿ”ธ

  • 2xnํƒ€์ผ 1์„ ํ’€๊ณ  ๋ฐ”๋กœ 2๋ฅผ ํ’€์–ด๋ณด๋Š” ๊ฑด๋ฐ ์ ํ™”์‹์ด ์กฐ๊ธˆ ๋‹ฌ๋ผ์ง„ ๊ฒƒ ๋ง๊ณ ๋Š” ๋น„์Šทํ•œ ๊ฒƒ ๊ฐ™๋‹ค.
  • ์ด๋ฒˆ์—๋„ dp๋ฌธ์ œ๋ฅผ ๊ทธ๋ƒฅ ๊ฒฝ์šฐ์˜ ์ˆ˜๊ฐ€ ๋Š˜์–ด๋‚˜๋Š” ๊ทœ์น™์„ ์ฐพ์•„ ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜ํ–ˆ๋‹ค.
    • ์›๋ฆฌ๋ฅผ ์ดํ•ดํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ dp๋ฅผ ํ’€์–ด์•ผํ•  ๊ฒƒ ๊ฐ™์•„์„œ ์ด๋ฒˆ์—๋Š” ํ’€์ด ํฌ์ŠคํŒ…์„ ์ฐพ์•„๋ณด์•˜๋‹ค.
    • ๋งˆ์ง€๋ง‰ ๋‹จ์—์„œ ๊ณ„์‚ฐํ•˜๋‹ˆ ๊ธˆ๋ฐฉ ์ดํ•ด๋˜๋Š” ๋ฐฉ์‹์ด์—ˆ๋‹ค.
      • ๋งˆ์ง€๋ง‰ ์นธ์— 1x2๊ฐ€ ๋ฐฐ์น˜๋œ๋‹ค๋ฉด >> (n-1) ๋ฒˆ์งธ ์นธ๊นŒ์ง€์˜ ๊ฒฝ์šฐ์˜ ์ˆ˜ : f(n-1)
      • ๋งˆ์ง€๋ง‰ ์นธ์— 2x1 ํ˜น์€ 2x2๊ฐ€ ๋ฐฐ์น˜๋œ๋‹ค๋ฉด >> (n-2) ๋ฒˆ์งธ ์นธ๊นŒ์ง€์˜ ๊ฒฝ์šฐ์˜ ์ˆ˜x2 : f(n-2)*2

728x90

'CodingTest > Python' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

BOJ_4101 : ํฌ๋ƒ?  (0) 2022.09.09
BOJ_17626 : Four Squares  (0) 2022.09.07
BOJ_11726 : 2ร—n ํƒ€์ผ๋ง  (0) 2022.09.05
BOJ_11659 : ๊ตฌ๊ฐ„ ํ•ฉ ๊ตฌํ•˜๊ธฐ 4  (0) 2022.09.05
BOJ_9461 : ํŒŒ๋„๋ฐ˜ ์ˆ˜์—ด  (0) 2022.09.03