ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

728x90
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ

 

์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์—ฐ์Šต - ๋ฉ€๋ฆฌ ๋›ฐ๊ธฐ

ํšจ์ง„์ด๋Š” ๋ฉ€๋ฆฌ ๋›ฐ๊ธฐ๋ฅผ ์—ฐ์Šตํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ํšจ์ง„์ด๋Š” ํ•œ๋ฒˆ์— 1์นธ, ๋˜๋Š” 2์นธ์„ ๋›ธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์นธ์ด ์ด 4๊ฐœ ์žˆ์„ ๋•Œ, ํšจ์ง„์ด๋Š” (1์นธ, 1์นธ, 1์นธ, 1์นธ) (1์นธ, 2์นธ, 1์นธ) (1์นธ, 1์นธ, 2์นธ) (2์นธ, 1์นธ, 1์นธ) (2์นธ, 2

programmers.co.kr

 

๋ฌธ์ œ ํ’€์ด

 ๋ฉ€๋ฆฌ ๋›ฐ๊ธฐ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์ด 1์นธ ๋˜๋Š” 2์นธ์œผ๋กœ ์ •ํ•ด์ ธ ์žˆ๋‹ค. ์ด๋•Œ N๊ฐœ์˜ ์นธ์„ ๋›ฐ๊ณ ์ž ํ•˜๋Š” ๊ฒฝ์šฐ, ๊ฒฝ์šฐ์˜ ์ˆ˜๊ฐ€ ๋ช‡ ๊ฐœ์ธ์ง€ ์ฐพ๋Š” ๋ฌธ์ œ์ด๋‹ค. ์ด๋Š” ๊ฐ ๊ฒฝ์šฐ์— ๋”ฐ๋ผ ์–ด๋–ค ๊ทœ์น™์„ ์ด๋ฃจ๋Š”์ง€ ํ™•์ธํ•˜๋ฉด ์‰ฝ๊ฒŒ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค.

 

  • N์ด 1์ธ ๊ฒฝ์šฐ
    • 1๊ฐœ : 1์นธ
  • N์ด 2์ธ ๊ฒฝ์šฐ
    • 2๊ฐœ : (1 + 1์นธ), 2์นธ
  • N์ด 3์ธ ๊ฒฝ์šฐ
    • 3๊ฐœ : (1 + 1 + 1์นธ), (2 + 1์นธ), (1 + 2์นธ)

 ์ฆ‰ N์— ๋”ฐ๋ผ dp[N] = dp[N - 1] + dp[N - 2]๋ผ๋Š” ์ ํ™”์‹์„ ์ด๋Œ์–ด ๋‚ผ ์ˆ˜ ์žˆ๋‹ค. ํ•ด๋‹น ์ ํ™”์‹์„ ํ†ตํ•ด ๊ตฌํ•ด์ง„ ๋‹ต์ด ๋ฌธ์ œ์—์„œ ์ฐพ๊ณ ์ž ํ•˜๋Š” ๋‹ต์ด๋‹ค.

 

์ฝ”๋“œ

def solution(n):
    # 0, 1์„ 1๋กœ ์ดˆ๊ธฐํ™”ํ•˜์—ฌ ์ ํ™”์‹์— ์‚ฌ์šฉ.
    dp = [1, 1] + [0] * n
    
    for i in range(2, n):
        dp[i] = dp[i - 1] + dp[i - 2]
        
    return dp[-1] % 1234567

 

728x90
๋ฐ˜์‘ํ˜•
๊ธ€ ๋ณด๊ด€ํ•จ
์ตœ๊ทผ์— ์˜ฌ๋ผ์˜จ ๊ธ€
์ตœ๊ทผ์— ๋‹ฌ๋ฆฐ ๋Œ“๊ธ€