728x90
https://www.acmicpc.net/problem/1003
1003번: 피보나치 함수
각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다.
www.acmicpc.net
#include <stdio.h> // 피보나치 함수
int main()
{
int t;
scanf("%d", &t);
// 0과 1의 개수를 저장
int dp[41][2];
dp[0][0] = 1;
dp[0][1] = 0;
dp[1][0] = 0;
dp[1][1] = 1;
for (int i = 0; i < t; i++)
{
int n;
scanf("%d", &n);
for (int j = 2; j <= n; j++)
{
dp[j][0] = dp[j - 1][0] + dp[j - 2][0];
dp[j][1] = dp[j - 1][1] + dp[j - 2][1];
}
printf("%d %d\n", dp[n][0], dp[n][1]);
}
return 0;
}
MEMO
-- 0과 1의 개수를 2차원 배열에 저장하여 사용하는 점이 핵심
!! dp는 조건이나 규칙 포기하지 않고 생각해보기 !!
728x90
728x90
'백준[baekjoon] > C언어' 카테고리의 다른 글
백준(baekjoon) [C] - 1149번: RGB거리 (0) | 2023.01.24 |
---|---|
백준(baekjoon) [C] - 11048번: 이동하기 (0) | 2023.01.23 |
백준(baekjoon) [C] - 11866번: 요세푸스 문제 0 (0) | 2023.01.22 |
백준(baekjoon) [C] - 1966번: 프린터 큐 (0) | 2023.01.22 |
백준(baekjoon) [C] - 2164번: 카드2 (0) | 2023.01.21 |