https://github.com/Dev-Guccin
Guccin
https://github.com/Dev-Guccin
전체 방문자
오늘
어제
  • 분류 전체보기 (172)
    • 알고리즘 (140)
    • 삽질방지 (13)
    • SystemHacking (1)
    • 일상 (4)
    • 개발 (8)
    • 스프링 부트 REST API 개발일지 (5)
    • JPA (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 다이나믹 프로그래밍
  • 재귀
  • 백준
  • 프로그래머스
  • 그래프
  • 최소힙
  • 큐
  • 백트래킹
  • MST
  • 다익스트라
  • 다이나믹프로그래밍
  • 유클리드호제법
  • 재귀함수
  • BFS
  • counter
  • python3
  • LIS
  • heapq
  • Python
  • 최대공약수
  • 최단경로
  • DP
  • DFS
  • 이분탐색
  • 그리디
  • 파이썬
  • 이분 탐색
  • 유니온 파인드
  • 12015
  • 스택

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
https://github.com/Dev-Guccin

Guccin

백준 10870 풀이 (재귀함수, 피보나치)
알고리즘

백준 10870 풀이 (재귀함수, 피보나치)

2021. 2. 10. 14:44

재귀함수는 아직 어렵다. 어떤 구조를 짜야하는지 계속 고민하게 된다.

그래도 얼추 대강 짜서 통과는 할 수 있었다. 

솔직히 대강 짠거라 안좋은 코드인줄 알았으나 속도가 빠르다는 장점이 있었다.

n = int(input())
def pibo(a,b,num):
    c = a+b
    if num == 0:
        return 0
    elif num <= 2:
        return c
    a = b
    b = c
    return pibo(a,b,num-1)

print(pibo(0,1,n))

 

아래는 다른 사람들의 코드이다. 아주 간결하고 짧다. 솔직히 이런코드 어떻게 짜는지 진짜 대단한거 같다.

def pibo(n):                      
    if n < 2: return n            
    return pibo(n-1) + pibo(n-2) 
print(pibo(int(input())))

pibo안으로 계속해서 값을 거미줄처럼 펼쳐나가는거 같다.

만약 n에 5가 들어가면 다음 그림과 같이 함수가 실행된다. 따라서 pibo(1)에서 반환되는 1값을 5번 더하면 결과적으로 5가 반환되는 것이다.

'알고리즘' 카테고리의 다른 글

백준 11729 풀이 (하노이탑)  (0) 2021.02.11
백준 2447 풀이 (재귀함수, 별찍기 - 10)  (0) 2021.02.10
백준 10872 풀이 (재귀함수, 팩토리얼)  (0) 2021.02.10
#3 알고리즘 공부 2/8 리뷰  (0) 2021.02.08
백준 9020 풀이 (골드바흐의 추측 )  (0) 2021.02.08
    '알고리즘' 카테고리의 다른 글
    • 백준 11729 풀이 (하노이탑)
    • 백준 2447 풀이 (재귀함수, 별찍기 - 10)
    • 백준 10872 풀이 (재귀함수, 팩토리얼)
    • #3 알고리즘 공부 2/8 리뷰
    https://github.com/Dev-Guccin
    https://github.com/Dev-Guccin
    https://github.com/Dev-Guccin

    티스토리툴바