본문 바로가기

PS/백준

[백준 1003번] 피보나치 함수 C++

728x90

www.acmicpc.net/problem/1003

 

1003번: 피보나치 함수

각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다.

www.acmicpc.net

진짜 죽어도 DP로 풀고싶었다

이거 풀이보니까 뭐 0과 1이 나오는 표인가 이런거있던데 이런거말고..

 

풀이법은 부분에서 나온 0과 1 이 출력된 횟수를 메모이제이션하고

각각의 부분에서 나온 횟수를 더하면 n의 0과 1이 출력된 횟수가 나온다고 짰다

 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <iostream>
#include <cstring>
#include <algorithm>
using namespace std;
 
//0과 1을 구하는 횟수를 메모이제이션
int dp[2][41];
int save;
 
void fibonacci(int a) {
 
    for (int i = 2; i <= a; i++) {
        dp[0][i] = dp[0][i - 1+ dp[0][i - 2];
        dp[1][i] = dp[1][i - 1+ dp[1][i - 2];
    }
}
 
int main() {
    
    int t;
    cin >> t;
 
    dp[0][0= 1;
    dp[1][1= 1;
 
    while (t--) {
        
        int n;
        cin >> n;
        save = n;        
        fibonacci(n);
        cout << dp[0][n] << " " << dp[1][n] << "\n";
    }
    return 0;
}
cs

풀었다 !!!!!!!!!!!!!

728x90

'PS > 백준' 카테고리의 다른 글

[백준 1904번] 01타일 C++  (0) 2021.05.12
[백준 9184번] 신나는 함수 실행 C++  (0) 2021.05.12
[백준 1463번] 1로 만들기 C++  (0) 2021.04.12
[백준 1697번] 숨바꼭질 C++  (0) 2021.03.19
[백준 7576번] 토마토 C++  (0) 2021.03.19