코딩테스트/백준

[2748] 피보나치 수 2(C#)

봉두두 2022. 4. 7. 22:53
728x90

N번째 피보나치 수를 구하는 문제.

N은 자연수 90이하의 수로서

핵심은 피보나치 수를 계산할 때 자료형을 int가 아닌 long으로 받아야 한다는 것이다.

알고리즘 : Dynamic Programming
시간복잡도 : O(N)
int N = int.Parse(Console.ReadLine());

// N은 90이하의 자연수이다. 
// int형으로 받으면 범위초과로 제대로 된 답을 얻을 수 없다.
List<long> fibo2 = new List<long>();
fibo2.Add(0);
fibo2.Add(1);

for (int i = 2; i < N + 1; i++)
    if (fibo2.Count > 1)
        fibo2.Add(fibo2[i-1] + fibo2[i-2]);

Console.WriteLine(fibo2[N]);

 

 

다른 알고리즘에 대한 문제도 많이 접해봐야겠다.

728x90
728x90