πŸ“šκ³΅λΆ€/μ•Œκ³ λ¦¬μ¦˜

μ•Œκ³ λ¦¬μ¦˜ - ν”Όλ³΄λ‚˜μΉ˜ μˆ˜μ—΄

Janger 2021. 11. 22. 23:09
728x90

 

ν”Όλ³΄λ‚˜μΉ˜μˆ˜μ—΄μ€ 

0, 1, 1, 2, 3, 5 ,8...

이런 μˆœμ„œλ‘œ μ•žμ˜ μˆ˜μ™€ λ’€μ˜ μˆ˜κ°€ μ„œλ‘œ λ”ν•œ 값을 μˆ˜μ—΄ ν˜•νƒœλ‘œ λ‚˜νƒ€λ‚Έ 것. (Fn = Fn-1 + fn-2)

 

 

 

ν”Όλ³΄λ‚˜μΉ˜μˆ˜μ—΄μ„ κ΅¬ν˜„ν•˜λŠ” 방법은 λŒ€ν‘œμ μœΌλ‘œ μž¬κ·€ ν•¨μˆ˜μ™€ λ°˜λ³΅λ¬Έμ„ μ΄μš©ν•˜λŠ” 방법듀이 μžˆλ‹€. 

 

μš°μ„  μž¬κ·€ν•¨μˆ˜λ‘œ ν”Όλ³΄λ‚˜μΉ˜μˆ˜μ—΄μ„ κ΅¬ν˜„ν•˜λŠ” 방법

int fibo(int n){
	if( n <= 0 )
    	return 0;
    else if( n == 1 )
    	return 1;
   	else
    	return fibo( n - 1 ) + fibo( n - 2 );
}

μ΄λ ‡κ²Œ κ΅¬ν˜„ν•  수 μžˆλ‹€. 

 

ν•˜μ§€λ§Œ μž¬κ·€ν•¨μˆ˜λ‘œ κ΅¬ν˜„ν•˜λ©΄ 반볡문 방식보닀 μ˜€λ²„ν—€λ“œκ°€ μ‹¬ν•˜κΈ° λ•Œλ¬Έμ— λ©”λͺ¨λ¦¬ λ‚­λΉ„κ°€ μƒκΈ°κ²Œ λœλ‹€. 

 

 

 

 

 

μœ„μ˜ 단점은 κ·Ήλ³΅ν•œ 방법이 λ°”λ‘œ μ•„λž˜μ˜ λ°˜λ³΅λ¬Έμ„ μ΄μš©ν•œ 방법이닀. 

def solution(n):
    fibo = [0, 1, 1]
    for i in range(3, n + 1):
        fibo.append( ( fibo[i-1] + fibo[i-2] ) )
    
    return fibo[-1]

 

#include <string>
#include <vector>

using namespace std;

int solution(int n) {
    
    vector<int> fibo = {0, 1, 1};
    
    for(int i=3; i<=n; i++ )    
        fibo.push_back( ( fibo[i-1] + fibo[i-2] ) );
    
    
    return fibo.back();
}

 

μž¬κ·€ ν•¨μˆ˜ 방식과 반볡문 방식을 μ„œλ‘œ 비ꡐλ₯Ό ν•΄λ³΄μ•˜λŠ”λ° 

μž¬κ·€ ν•¨μˆ˜κ°€ ν”Όλ³΄λ‚˜μΉ˜μˆ˜μ—΄μ„ 10번째 μžλ¦¬κΉŒμ§€ κ΅¬ν•˜λŠ” λ©”λͺ¨λ¦¬ μš©λŸ‰μ΄ λ°˜λ³΅λ¬Έμ€ 무렀 100번째 μžλ¦¬κΉŒμ§€ κ΅¬ν•˜λŠ” λ©”λͺ¨λ¦¬μ˜ μš©λŸ‰κ³Ό λ˜‘κ°™μ΄ λ‚˜μ™”λ‹€. 

728x90