[백준] 1003 C++
#include <iostream>
using namespace std;
// 피보나치 함수
// 시간초과
// int zero, one;
// int fibonacci(int n) {
// if(n==0) {
// zero++;
// return 0;
// } else if(n==1) {
// one++;
// return 1;
// } else {
// return fibonacci(n-1) + fibonacci(n-2);
// }
// }
int main() {
ios::sync_with_stdio(0);
int T, c;
// 다이나믹 프로그래밍은 배열에 이전 값을 저장해둬야 한다고 해서 배열을 선언
// arr[0][n]은 0의 개수 arr[1][n]은 1의 개수
int arr[2][41]={0,};
// 호출을 (n-1) (n-2)이렇게 하니까 arr[0][0]~arr[1][1]까지 미리 수를 넣어둠
arr[0][0] = 1;
arr[1][0] = 0;
arr[0][1] = 0;
arr[1][1] = 1;
// 범위 내 숫자들의 0, 1 개수들을 미리 계산
for(int i=2; i<41; i++) {
arr[0][i] = arr[0][i-1] + arr[0][i-2];
arr[1][i] = arr[1][i-1] + arr[1][i-2];
}
cin >> T;
for(int i=0; i<T; i++) {
cin >> c;
// 받은 수의 0과 1의 개수를 출력
cout << arr[0][c] << " " << arr[1][c] << '\n';
}
return 0;
}
Author And Source
이 문제에 관하여([백준] 1003 C++), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@dbsrud11/백준-1003-C저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)