[백준 1003] 피보나치 함수 C언어
2024. 3. 12. 08:03ㆍ코딩테스트/백준
문제
https://www.acmicpc.net/problem/1003
1003번: 피보나치 함수
각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다.
www.acmicpc.net
코드
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
int main(void)
{
int n, k;
int save[41][2] = {0};
scanf("%d", &n);
for (int i = 0; i <= 40; i++) { // 값 넣기
if (i == 0) {
save[i][0] = 1;
save[i][1] = 0;
}
else if (i == 1) {
save[i][0] = 0;
save[i][1] = 1;
}
else if (i == 2) {
save[i][0] = 1;
save[i][1] = 1;
}
else {
save[i][0] = save[i - 1][0] + save[i - 2][0];
save[i][1] = save[i - 1][1] + save[i - 2][1];
}
}
for (int i = 1; i <= n; i++) { // 출력
scanf("%d", &k);
printf("%d %d\n", save[k][0], save[k][1]);
}
}
유의할 점
재귀로 풀면 안 풀림.
아이디어
f(5) = f(4) + f(3)
이므로
f(0) f(1) f(2)만 초기값 저장해두고 반복문 돌리기
'코딩테스트 > 백준' 카테고리의 다른 글
[백준 - 10816] 숫자 카드 2 (1) | 2024.09.02 |
---|---|
[백준 1764] 듣보잡 (1) | 2024.03.17 |
[백준 10773] 제로 (0) | 2024.03.08 |
[백준 2108] 통계학 (1) | 2024.02.08 |
[백준 7568] 덩치 (0) | 2024.02.07 |