Algorithm/LeetCode

[LeetCode] Fibonacci number (피보나치 수열)

LeetCode 문제 링크

leetcode.com/problems/fibonacci-number/

 

Fibonacci Number - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

피보나치 수열 계산기 (100까지)

ko.numberempire.com/fibonaccinumbers.php

 

피보나치 수열 생성기

피보나치 수열 생성기

ko.numberempire.com


대표적인 재귀함수를 사용하는 문제이다.

 

ko.wikipedia.org/wiki/%ED%94%BC%EB%B3%B4%EB%82%98%EC%B9%98_%EC%88%98

 

피보나치 수

위키백과, 우리 모두의 백과사전. 피보나치 수를 이용한 사각형 채우기 수학에서, 피보나치 수(영어: Fibonacci numbers)는 첫째 및 둘째 항이 1이며 그 뒤의 모든 항은 바로 앞 두 항의 합인 수열이다.

ko.wikipedia.org

점화식을 컴퓨터 언어로 바꿔서 풀면 된다.

 

n+2 = n + n+1 이런 형태였던 것으로 기억한다. -> 오늘(2021-03-06)은 깃허브 포트폴리오 페이지 변경하고 월요일에 풀겠습니다.

 

검색이나 외부 자료없이 풀기


일반적인 재귀함수 형식으로 풀기

class Solution {
    public int fib(int n) {
        if(n == 0) return 0;
        else if(n == 1 || n ==2 ) return 1;
        else return fib(n-2) + fib(n-1);
    }
}

Runtime: 5 ms, faster than 30.15% of Java online submissions for Fibonacci Number.
Memory Usage: 35.7 MB, less than 71.43% of Java online submissions for Fibonacci Number.

5ms / 35.7 MB를 사용했다.

 

구글 검색과 동빈나님의 코딩테스트 서적을 활용해서 풀기

 

devjun.tistory.com/112

 

Fibonacci number with Dynamic Programming

요약 재귀함수를 사용해서 풀면 비효율적인 호출이 많아진다. -> 다이나믹 프로그래밍을 활용하자. 재귀함수로 해결할 시 시간복잡도 O(2^n) 다이나믹 프로그래밍으로 해결시 시간 복잡도 O(N) 멘

devjun.tistory.com

 

'Algorithm > LeetCode' 카테고리의 다른 글

[LeetCode] Fibonacci number with Dynamic Programming  (0) 2021.03.09
[LeetCode] Divisor Game  (0) 2021.03.08
[LeetCode] Sort Colors  (0) 2021.03.05
[LeetCode] Make The String Great  (0) 2021.03.04
[LeetCode] Assign Cookies  (3) 2021.03.03