자바 백준 15624번
실버 4
https://www.acmicpc.net/problem/15624
문제 보기
분류: 수학, 다이나믹 프로그래밍
코드 풀이
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 사용자로부터 n 값을 입력
int n = sc.nextInt();
// getFibonacciNumber 메서드를 호출하여 n번째 피보나치 수를 계산하고 결과를 result에 저장
int result = getFibonacciNumber(n);
// 계산된 n번째 피보나치 수를 출력
System.out.println(result);
}
// n번째 피보나치 수를 계산하는 메서드
private static int getFibonacciNumber(int n) {
// base case: n이 0 또는 1인 경우, 해당 값을 반환
if (n <= 1) {
return n;
}
// 피보나치 수열을 저장할 dp 배열 생성
int[] dp = new int[n + 1];
// 초기값 설정
dp[0] = 0;
dp[1] = 1;
// 2부터 n까지 반복하며 피보나치 수열 계산
for (int i = 2; i <= n; i++) {
// dp[i]는 dp[i-1]과 dp[i-2]의 합을 1,000,000,007로 나눈 나머지
dp[i] = (dp[i - 1] + dp[i - 2]) % 1_000_000_007;
}
// n번째 피보나치 수 반환
return dp[n];
}
}
'공부하기 > 백준' 카테고리의 다른 글
[Java] 백준 풀기 2776 - 암기왕 (0) | 2024.03.21 |
---|---|
[Java] 백준 풀기 1972 - 놀라운 문자열 (0) | 2024.03.19 |
[Java] 백준 풀기 5218 - 알파벳 거리 (0) | 2024.03.17 |
[Java] 백준 풀기 2309 - 일곱 난쟁이 (0) | 2024.03.16 |
[Java] 백준 풀기 2179 - 비슷한 단어 (0) | 2024.03.10 |