2747
import java.util.Scanner;
class Main {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
// n번째 수 입력
int n = in.nextInt();
// 결과값을 저장하는 변수 선언
int result = 0;
//Fn-2
int first = 0;
// Fn-1
int second = 1;
// n이 0과 1인 경우를 제외한 나머지는 Fn = Fn-1 + Fn-2 이므로 else문 실행
for (int i = 0 ;i < n; i++) {
if (n == 0)
break;
if (i == 1)
result = 1;
else {
result = first + second;
first = second;
second = result;
}
}
// 출력
System.out.println(result);
}
}
평범한 피보나치 수열 문제이다.
피보나치 수열을 이해하는지가 중요한 문제이다.
- 피보나치 수열
Fn = Fn-1 + Fn-2
이러한 피보나치 수열의 특성때문에 0과 1번째 수는 동적인 프로그래밍이 제한된다. 하지만 그 이후에는 피보나치 수열을 그대로 코드로 적용하면 되기에 문제가 없다.
분명히 난 피보나치 수열문제를 푼적이 있다. 그리고 브론즈 문제인지라 전에 푼 문제와 많은 차이가 나지 않는데 좀 걸렸던걸 생각하면 많이 부족하다는 생각이 든다.