https://www.acmicpc.net/problem/1003
1003번: 피보나치 함수
각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다.
www.acmicpc.net
기본적인 구성은 피보나치 함수와 같은데, dp를 이차원 배열로 선언해서 dp[i][0]에는 0의 개수, dp[i][1]에는 1의 개수를 저장해서 돌리면 된다. 매우 쉬움.
#include <cstdio>
int main(void){
int T, a, dp[41][2]{{1,0},{0,1},};
for(int i=2; i<41; i++){
dp[i][0]=dp[i-1][0]+dp[i-2][0];
dp[i][1]=dp[i-1][1]+dp[i-2][1];
}
scanf("%d",&T);
for(int j=0; j<T; j++){
scanf("%d",&a);
printf("%d %d\n",dp[a][0],dp[a][1]);
}
}
'알고리즘 문제' 카테고리의 다른 글
[C/C++ 백준 9465번] 스티커 (Silver 2) (0) | 2020.05.15 |
---|---|
[C/C++ 백준 9507번] Generations of Tribbles (Silver 3) (0) | 2020.05.15 |
[C/C++ 백준 14501번] 퇴사 (Silver 4) (0) | 2020.05.15 |
[C/C++ 백준 1010번] 다리 놓기 (Silver 5) (0) | 2020.05.15 |
[C/C++ 백준 6359번] 만취한 상범 (Bronze 2) (0) | 2020.05.15 |