BOJ/๐Ÿฅ‰

โ˜…Recursion Upper-Beginner - 3 Solvedโ˜…

metamong 2022. 9. 27.

โ˜… 10870 ํ”ผ๋ณด๋‚˜์น˜ ์ˆ˜ 5 โ˜…

 

def fibo(n):
    if n in [0,1]:
        return n
    else:
        return fibo(n-1) + fibo(n-2)

print(fibo(int(input())))

 

๐ŸŒบ ์žฌ๊ท€๋ฅผ ์ด์šฉํ•ด์„œ ํ•จ์ˆ˜ ์•ˆ์— ๊ทธ ์ด์ „ ๋‘ ๋™์ผํ•œ ํ•จ์ˆ˜๋ฅผ ๋˜ ๋„ฃ์–ด ์žฌ๊ท€์ ์œผ๋กœ ๊ณ„์† ํ•จ์ˆ˜ ๊ฒฐ๊ณผ๊ฐ€ ์Œ“์ธ ์ตœ์ข… ํ•ฉ์€ ๊ณง ํ”ผ๋ณด๋‚˜์น˜์˜ ์ˆ˜๊ฐ€ ๋จ

 

โ€ป ์ฃผ์˜! n์ด 20๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์œผ๋ฏ€๋กœ ์žฌ๊ท€๋กœ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‚˜(์žฌ๊ท€์˜ ์˜ˆ์‹œ๋ฅผ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•ด ์žฌ๊ท€๋กœ ํ’€์—ˆ์„ ๋ฟ), n์ด ๋งค์šฐ ํฐ ์ˆ˜์ผ๊ฒฝ์šฐ recursion ๊นŠ์ด๊ฐ€ ๋„ˆ๋ฌด ๊นŠ์–ด error ๋ฐœ์ƒ. ์ด๋Ÿด ๋•Œ๋Š” dp๋ฅผ ํ•ด๊ฒฐํ•˜๊ฑฐ๋‚˜ ์ถ”๊ฐ€์ ์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์žฅ์น˜๋กœ ํ•ด๊ฒฐ ํ•ด์•ผํ•จ. ๋ณ„๋„ ํฌ์ŠคํŒ… ์ฐธ์กฐ ํ•„์š” โ€ป


โ˜… 5956 Symmetry โ˜…

def get_cows(n,m,times,cows):
    if n%2==0 or m%2==0:
        print(cows)
        return
    cows += times
    get_cows(n//2,m//2,times*4,cows)
    
N,M=map(int,input().split()) 
get_cows(N,M,1,0)

 

๐ŸŒบ recursion์—์„œ ์ฃผ์˜ํ•ด์•ผ ํ•  ์ ์€, loop์—์„œ ๊ฒน๊ฒน์ด ์Œ“์ธ cycle์„ ๋ฒ—์–ด๋‚˜๋ฉด์„œ ๋„๋กœ ๋‹ค์‹œ count๋  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ! ๋”ฐ๋ผ์„œ, recursion์ด ์ ์  ์ง„ํ–‰๋˜๋ฉด์„œ - ๋ˆ„์ ๋˜์–ด ๋”ํ•ด์ง„ cows ๊ฐ’์„ ์ข…๋ฃŒ ์กฐ๊ฑด์— printํ•ด์ฃผ๊ณ  ๋ฐ”๋กœ returnํ•ด ๋ฐ–์œผ๋กœ ๋‚˜๊ฐˆ ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ฃผ๋Š” recursion๋„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค!

 

๐ŸŒบ

โ‘  ๋‹จ ํ•œ ๋ณ€์ด๋ผ๋„ ์ง์ˆ˜ ๊ธธ์ด๋ผ๋ฉด cow๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์—†์œผ๋ฏ€๋กœ ์ข…๋ฃŒ ์กฐ๊ฑด ๋งŒ๋“ค๊ธฐ

โ‘ก cows์™€ ๊ณฑํ•ด์ง€๋Š” ํšŸ์ˆ˜ times ๋‘ ๋ณ€์ˆ˜๊ฐ€ recursion์„ ๊ฑฐ์น˜๋ฉด์„œ ๊ฐ’์ด ๋‹ฌ๋ผ์ง€๋ฏ€๋กœ ๋ชจ๋‘ recursion ํ•จ์ˆ˜ ์ธ์ž์— ๋„ฃ๋Š”๋‹ค.

โ‘ข ๊ฐ ๋‘ ๋ณ€์„ 2๋กœ ๋‚˜๋ˆˆ ๋ชซ์œผ๋กœ ์ด๋ฃจ์–ด์ง„ 4๊ฐœ์˜ ์ •์‚ฌ๊ฐํ˜•๋“ค(recursion ํ•จ์ˆ˜)์—์„œ ๊ณ„์† cows ๋ณ€์ˆ˜์— ๋”ํ•˜๋ฉด์„œ cows ๋ˆ„์ ํ•ฉ ๊ฒฐ๊ณผ๋ฅผ ์žฌ๊ท€๊ฒฐ๊ณผ๋กœ print!


โ˜… 25501 ์žฌ๊ท€์˜ ๊ท€์žฌ โ˜…

import sys
input=sys.stdin.readline

def recursion(string, start, end):
    global cnt
    if start>=end:
        return 1
    elif (string[start] != string[end]):
        return 0
    else:
        cnt+=1
        return recursion(string, start+1, end-1)
    
for _ in range(int(input())):
    letter=input().rstrip()
    cnt = 1
    print(recursion(letter,0,len(letter)-1),cnt)

๐ŸŒบ ๊ทธ๋Œ€๋กœ ๊ตฌํ˜„. return ์ข…๋ฃŒ๋ฌธ์ด 2๊ฐœ ์žˆ๊ณ , return๋ฌธ์œผ๋กœ ๊ทธ ๋‹ค์Œ ์žฌ๊ท€ํ•จ์ˆ˜๋ฅผ ๋˜ ํ˜ธ์ถœํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ง„ํ–‰


 

 

๋Œ“๊ธ€