๐Ÿ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๋Œ€๋น„ : PS

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] 2xn ํƒ€์ผ๋ง (level2, python)

๊ฐœ๋ฐœ์ž HOON 2022. 9. 19. 22:51

๋ฌธ์ œ ์„ค๋ช…

๊ฐ€๋กœ ๊ธธ์ด๊ฐ€ 2์ด๊ณ  ์„ธ๋กœ์˜ ๊ธธ์ด๊ฐ€ 1์ธ ์ง์‚ฌ๊ฐํ˜•๋ชจ์–‘์˜ ํƒ€์ผ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ง์‚ฌ๊ฐํ˜• ํƒ€์ผ์„ ์ด์šฉํ•˜์—ฌ ์„ธ๋กœ์˜ ๊ธธ์ด๊ฐ€ 2์ด๊ณ  ๊ฐ€๋กœ์˜ ๊ธธ์ด๊ฐ€ n์ธ ๋ฐ”๋‹ฅ์„ ๊ฐ€๋“ ์ฑ„์šฐ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ํƒ€์ผ์„ ์ฑ„์šธ ๋•Œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด 2๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค.

 

  • ํƒ€์ผ์„ ๊ฐ€๋กœ๋กœ ๋ฐฐ์น˜ ํ•˜๋Š” ๊ฒฝ์šฐ
  • ํƒ€์ผ์„ ์„ธ๋กœ๋กœ ๋ฐฐ์น˜ ํ•˜๋Š” ๊ฒฝ์šฐ

 

์˜ˆ๋ฅผ ๋“ค์–ด์„œ n์ด 7์ธ ์ง์‚ฌ๊ฐํ˜•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ฑ„์šธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ง์‚ฌ๊ฐํ˜•์˜ ๊ฐ€๋กœ์˜ ๊ธธ์ด n์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, ์ด ์ง์‚ฌ๊ฐํ˜•์„ ์ฑ„์šฐ๋Š” ๋ฐฉ๋ฒ•์˜ ์ˆ˜๋ฅผ return ํ•˜๋Š” solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.


์ œํ•œ์‚ฌํ•ญ
  • ๊ฐ€๋กœ์˜ ๊ธธ์ด n์€ 60,000์ดํ•˜์˜ ์ž์—ฐ์ˆ˜ ์ž…๋‹ˆ๋‹ค.
  • ๊ฒฝ์šฐ์˜ ์ˆ˜๊ฐ€ ๋งŽ์•„ ์งˆ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ 1,000,000,007์œผ๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋ฅผ returnํ•ด์ฃผ์„ธ์š”.

์ž…์ถœ๋ ฅ ์˜ˆ

์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

 

์ž…์ถœ๋ ฅ ์˜ˆ #1
๋‹ค์Œ๊ณผ ๊ฐ™์ด 5๊ฐ€์ง€ ๋ฐฉ๋ฒ•์ด ์žˆ๋‹ค.


ํ’€์ด ์ฝ”๋“œ

def solution(n):
    if n == 1:
        return 1
    elif n == 2:
        return 2
    
    dp = [0, 1, 2]
    for i in range(3, n+1):
        dp.append((dp[i-1] + dp[i-2]) % 1_000_000_007)
    return dp[n]

๋‹ค์ด๋‚˜๋ฏน ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฌธ์ œ๊ณ , ๋ฐฑ์ค€(์‹ค๋ฒ„)์—๋„ ์žˆ๋Š” ๋ฌธ์ œ๋‹ค.

ํ”ผ๋ณด๋‚˜์น˜์™€ ๋™์ผํ•œ ์›๋ฆฌ์ด๋ฉฐ, ํšจ์œจ์„ฑ์„ ํ†ต๊ณผํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‘ ๊ฐ€์ง€ ์กฐ๊ฑด์ด ํ•„์š”ํ•˜๋‹ค.

 

ํ•˜๋‚˜๋Š” ๋ฉ”๋ชจ์ด์ œ์ด์…˜์œผ๋กœ, ์žฌ๊ท€๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋ฉ”๋ชจ๋ฆฌ ์ ‘๊ทผ์ด ๋”์šฑ ํšจ์œจ์ ์ด๋‹ค.

๋‘ ๋ฒˆ์งธ๋Š” ์ตœ์ข…์ ์œผ๋กœ ๊ฐ’์˜ ๋‚˜๋จธ์ง€๋ฅผ ๊ตฌํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ๋ฐฐ์—ด์— ์‚ฝ์ž…ํ•  ๋•Œ ๋‚˜๋จธ์ง€ ์—ฐ์‚ฐ์„ ์ ์šฉํ•œ๋‹ค.

์ˆ˜๊ฐ€ ์ปค์ง€๋ฉด ์ปค์งˆ ์ˆ˜๋ก, ์ ์  ๋” ๋น ๋ฅธ ์†๋„๋กœ ์ปค์ง€๊ธฐ ๋•Œ๋ฌธ์— ์ค‘๊ฐ„์— ๋‚˜๋จธ์ง€ ์—ฐ์‚ฐ์„ ์ ์šฉํ•ด์ฃผ๋ฉด

์ˆ˜๊ฐ€ ์ปค์ ธ์„œ ์—ฐ์‚ฐ์†๋„๊ฐ€ ์ €ํ•˜๋˜๋Š” ํ˜„์ƒ์„ ์–ต์ œํ•  ์ˆ˜ ์žˆ๋‹ค.