Coding Test

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค lvl.2] ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜ - python

ํด๋กœ์ด๐Ÿ“ 2023. 10. 19. 01:13

๐Ÿ“‹ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค Level.2

ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๋งํฌ

ํ„ฑ, ํ•˜๊ณ  ํ’€์—ˆ๋”๋‹ˆ

ํƒ, ํ•˜๊ณ  ๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ๊ฐ€

 

๐Ÿ‘ฉ๐Ÿป‍๐Ÿ’ป ๋‚ด๊ฐ€ ํ‘ผ ํ’€์ด

์žฌ๊ท€ ํ•จ์ˆ˜ ์‚ฌ์šฉ, 

def solution(n):
    if n== 0:
        return 0
    elif n == 1:
        return 1
    return (solution(n-1)+solution(n-2))%1234567

ํ‘ํ‘ ๋ฏธ์•ˆํ•ดใ… 

 

๐Ÿ“” ์ •๋‹ต ์ฝ”๋“œ

def solution(n):
    fibo = [0, 1]
    for i in range(2, n+1):
        fibo.append(fibo[i-1] + fibo[i-2])
            
    return fibo[-1]%1234567

๋ฐ˜๋ณต๋ฌธ์„ ์ด์šฉํ•ด์„œ ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜๋ฅผ append ํ•ด์ค€๋‹ค.

๋งจ ๋งˆ์ง€๋ง‰์— ์ €์žฅํ•œ ์ˆ˜๊ฐ€ n๋ฒˆ์งธ ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ์— ๋”ฐ๋ฅธ ๋‚˜๋จธ์ง€๋ฅผ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด `fibo[-1]%1234567` ์„ ํ•ด์ค€ ๋‹ค์Œ `return`

 

์žŠ์ง€ ๋ง์ž, ํŒŒ์ด์ฌ์€ ์žฌ๊ท€ ๊นŠ์ด๊ฐ€ ์žˆ์–ด ์ตœ์žฌ 1000๋ฒˆ์˜ ์žฌ๊ท€ ํ˜ธ์ถœ์ด ๊ฐ€๋Šฅํ•˜๊ณ  ๊ทธ ์ด์ƒ์€ 'Recursion Error' ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.

 

๐Ÿ“” ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ์ฝ”๋“œ

def fibonacci(num):
    a, b = 0, 1
    for i in range(num):
        a, b = b, a+b
    return a

์‹ ๋ฐ•ํ•ด, ์ธ์ƒ๊นŠ๋‹ค.

 

 

 

 

๋‹ค๋ฅธ ๋ฌธ์ œ์—์„œ ์ด ๊นŠ์ด๋ฅผ ๋Š˜๋ ค์•ผ ํ•˜๋Š” ์ƒํ™ฉ์ด ์˜จ๋‹ค๋ฉด?

import sys
sys.setrecursionlimit(2500)

์œ„์˜ sys ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ด์šฉํ•ด ์žฌ๊ท€ ๊นŠ์ด๋ฅผ ๋Š˜๋ ค์ฃผ๋Š” ๊ฒƒ์„ ๊ธฐ์–ตํ•˜์ž๐Ÿ˜ฏ

'Coding Test' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค lvl.2] ์ ํ”„์™€ ์ˆœ๊ฐ„์ด๋™ - python  (0) 2023.10.20