10870번: 피보나치 수 5
피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가
www.acmicpc.net
오랜만에 PS를 했다. DP 문제로 하나 풀려했는데, 정답률에 맞게 난이도가 쉬웠다.
문제)
0번째, 1번째 피보나치 수를 0, 1로 정의한다. 20 이하의 자연수 n을 입력했을 때, n번째 피보나치 수를 출력하시오.
풀이)
간단한 dp문제. 1차원 배열로 DP 테이블을 정의하고, 메모이제이션을 이용한 다음 입력받은 n을 인덱싱해서 출력하면 된다.
C 코드)
#include <stdio.h>
int n;
int dp[21];
int main() {
dp[0] = 0;
dp[1] = 1;
for(int i=2;i<21;i++) {
dp[i] = dp[i-2] + dp[i-1];
}
scanf("%d", &n);
printf("%d", dp[n]);
}
'IT > Problem Solving' 카테고리의 다른 글
백준 1562 - 계단 수 (1) | 2024.02.02 |
---|---|
백준 15651 - N과 M (3) (0) | 2021.08.23 |
백준 9461 - 파도반 수열 (2) | 2021.01.28 |