전공공부
[BOJ_2748] 피보나치 수열2 본문
설명
피보나치 수열을 구현하는 코드입니다. 당연하게도 dynamic programming 방식을 채택했고 0 1 1 2 3 5 8 ...
이전 두 개의 값을 가져와서 현재의 값으로 초기화하는 방식을 그대로 구현해서 사용했습니다. 사실, DP 문제는 아이디어 싸움이라 구현상의 어려움은 없었습니다.
코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
long[] dp = new long[n + 1];
dp[0] = 0;
if (n > 0) {
dp[1] = 1;
}
for (int i = 2; i <= n; i++) {
dp[i] = dp[i - 1] + dp[i - 2];
}
System.out.println(dp[n]);
}
}
2748번: 피보나치 수 2
피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가
www.acmicpc.net
'Study > Problem Solving' 카테고리의 다른 글
[BOJ_2407] 조합 (0) | 2024.02.19 |
---|---|
[BOJ_1010] 다리놓기 (0) | 2024.02.14 |
[BOJ_1507] 궁금한 민호 (0) | 2024.02.12 |
[BOJ_1865] 웜홀 (1) | 2024.02.11 |
[BOJ_22865] 가장 먼 곳 (1) | 2024.02.11 |