โ 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๋ฌธ์ผ๋ก ๊ทธ ๋ค์ ์ฌ๊ทํจ์๋ฅผ ๋ ํธ์ถํ๋ ๋ฐฉ์์ผ๋ก ์งํ
'BOJ > ๐ฅ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
โ Math & Geometry Upper-Beginner I - 30 Solvedโ (0) | 2022.10.09 |
---|---|
โ ์ ๋ ฌ ๊ธฐ์ด1 - 8๋ฌธ์ ()โ (2) | 2022.10.05 |
โ Math Beginner II - 30 Solvedโ (0) | 2022.09.20 |
โ Basics II - 50 Solvedโ (0) | 2022.09.08 |
โ Implementation Beginner I - 50 Solvedโ (0) | 2022.08.22 |
๋๊ธ