๐Ÿ˜Ž ๊ณต๋ถ€ํ•˜๋Š” ์ง•์ง•์•ŒํŒŒ์นด๋Š” ์ฒ˜์Œ์ด์ง€?

[์ด๊ฒƒ์ด ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ๋‹ค with Python]_17_์žฌ๊ท€ ํ•จ์ˆ˜ ๋ณธ๋ฌธ

๐Ÿฆฅ ์ฝ”ํ…Œ/์ด๊ฒƒ์ด ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ๋‹ค with python

[์ด๊ฒƒ์ด ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ๋‹ค with Python]_17_์žฌ๊ท€ ํ•จ์ˆ˜

์ง•์ง•์•ŒํŒŒ์นด 2022. 2. 2. 00:47
728x90
๋ฐ˜์‘ํ˜•

220202 ์ž‘์„ฑ

<๋ณธ ๋ธ”๋กœ๊ทธ๋Š” ใ€Ž์ด๊ฒƒ์ด ์ทจ์—…์„ ์œ„ํ•œ ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ๋‹คใ€ ์˜ youtube๋ฅผ ์ฐธ๊ณ ํ•ด์„œ ๊ณต๋ถ€ํ•˜๋ฉฐ ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค>

https://www.youtube.com/watch?v=gFpKGWdEE5g&list=PLVsNizTWUw7H9_of5YCB0FmsSc-K44y81&index=17 

 

 

 

 

 

1. ์žฌ๊ท€ํ•จ์ˆ˜ (Recursive Function)

: ์ž๊ธฐ ์ž์‹ ์„ ๋‹ค์‹œ ํ˜ธ์ถœํ•˜๋Š” ํ•จ์ˆ˜

: ์žฌ๊ท€ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค -> ๋ฌธ์ž์—ด์„ ๋ฌดํ•œํžˆ ์ถœ๋ ฅ

: ์–ด๋Š์ •๋„ ์ถœ๋ ฅํ•˜๋‹ค๊ฐ€ ์ดˆ๊ณผ ๋ฉ”์‹œ์ง€๊ฐ€ ์ถœ๋ ฅ

: ๋ชจ๋“  ์žฌ๊ท€ ํ•จ์ˆ˜๋Š” ๋ฐ˜๋ณต๋ฌธ์„ ์ด์šฉํ•˜์—ฌ ๋™์ผํ•œ ๊ธฐ๋Šฅ ๊ตฌํ˜„ ๊ฐ€๋Šฅ!

: ํ•จ์ˆ˜๋ฅผ ์—ฐ์†์ ์œผ๋กœ ํ˜ธ์ถœํ•˜๋ฉด ๋ฉ”๋ชจ๋ฆฌ ๋‚ด๋ถ€์— ์Šคํƒ ํ”„๋ ˆ์ž„์— ์Œ“์ž„

-> ์Šคํƒ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋Œ€์‹  ์žฌ๊ท€ ํ•จ์ˆ˜ ์ด์šฉํ•˜๊ธฐ๋„ ํ•จ!

 

ex) ์žฌ๊ท€ํ•จ์ˆ˜ -> error ์ดˆ๊ณผ!

def recursive_function() :
    print("์žฌ๊ท€ ํ•จ์ˆ˜ ํ˜ธ์ถœ")
    recursive_function()

recursive_function

 

 

ex) ์ข…๋ฃŒ ์กฐ๊ฑด ํฌํ•จํ•œ ์žฌ๊ท€ ํ•จ์ˆ˜

: ์žฌ๊ท€ ํ•จ์ˆ˜์˜ ์ข…๋ฃŒ ์กฐ๊ฑด ๋ฐ˜๋“œ์‹œ ๋ช…์‹œ

: like ์Šคํƒ ์ฒ˜๋Ÿผ

def recursive_function(i) :
    if i == 100 :
        return

    print(i, "๋ฒˆ์งธ ์žฌ๊ท€ ํ•จ์ˆ˜์—์„œ", i+1, "๋ฒˆ์งธ ์žฌ๊ท€ ํ•จ์ˆ˜๋ฅผ ํ˜ธ์ถœํ•ฉ๋‹ˆ๋‹ค")
    recursive_function(i+1)
    print(i, "๋ฒˆ์งธ ์žฌ๊ท€ ํ•จ์ˆ˜๋ฅผ ์ข…๋ฃŒํ•ฉ๋‹ˆ๋‹ค")
recursive_function(1)

 

 

 

 

2. ํŒฉํ† ๋ฆฌ์–ผ

: n! = 1 x 2 x ... x ( n-1 ) x n

: 0! ๊ณผ 1! ์€ 1

# ๋‹จ์ˆœ ๋ฐ˜๋ณต
def factorial_iterative(n) :
    result = 1

    for i in range(1, n+1) :
        result *= i
    return result

# ์žฌ๊ท€ ํ•จ์ˆ˜
def factorial_recursive(n):
    if n <= 1:
        return 1
    return n * factorial_recursive(n-1)

print("๋‹จ์ˆœ ๋ฐ˜๋ณต : ", factorial_iterative(5))
print("์žฌ๊ท€ ํ•จ์ˆ˜ : ", factorial_recursive(5))

 

 

 

 

 

 

3. ์ตœ๋Œ€ ๊ณต์•ฝ์ˆ˜ (์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ๋ฒ•)

: ๋‘ ๊ฐœ์˜ ์ž์—ฐ์ˆ˜์— ๋Œ€ํ•œ ์ตœ๋Œ€ ๊ณต์•ฝ์ˆ˜๋ฅผ ๊ตฌํ•˜๊ธฐ

: ์žฌ๊ท€ ํ•จ์ˆ˜๋กœ ๊ฐ€๋Šฅ

 

: ์œ ํด๋ฆฌ๋“œ ํ˜ธ์ œ๋ฒ•

- ๋‘ ์ž์—ฐ์ˆ˜ A, B,์— ๋Œ€ํ•˜์—ฌ ( A > B ) A๋ฅผ B๋กœ ๋‚˜๋ˆˆ ๋‚˜๋จธ์ง€๋ฅผ R

- A, B์˜ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๋Š” B์™€ R์˜ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜์™€ ๊ฐ™๋‹ค

๋‹จ๊ณ„ A B
1 192 162
2 (B) 162 (๋‚˜๋จธ์ง€) 30
3 30 (๋‚˜๋จธ์ง€) 12
4 12 (๋‚˜๋จธ์ง€) 6
5 6 0
def gcd(a, b) :
    if a % b == 0:
        return b
    else :
        return gcd(b, a%b)
print(gcd(154,22))

# 22

 

 

 

 

 

 

 

 

 

728x90
๋ฐ˜์‘ํ˜•
Comments