스쳐가는비
devtravel
스쳐가는비
전체 방문자
오늘
어제
  • 분류 전체보기 (108)
    • 🎵 Daily (0)
    • 📚 Computer Science (11)
      • Algorithm (9)
      • Design Pattern (2)
    • 🔥 Programming (23)
      • C# (3)
      • C++ (5)
      • WPF (0)
      • Python (1)
      • OpenCV (9)
      • ML & DL (5)
    • 🔥 Web (13)
      • HTML (6)
      • JavaScript (7)
    • 📌 Tool (2)
      • Git (2)
      • Etc (0)
    • 📖 Certificate (10)
      • 컴활 1급 (2)
      • SQL 개발자 (2)
      • 리눅스 마스터 (0)
      • 정보처리기사 (0)
      • 사무자동화산업기사 (0)
      • ADsP (6)
    • 💻 OnlineJudge (49)
      • Baekjoon (49)
      • GoormEdu (0)
GitHub Contribution
Loading data ...

인기 글

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
스쳐가는비

devtravel

[백준 / BOJ] C++ 1003 피보나치 함수
💻 OnlineJudge/Baekjoon

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

2022. 12. 11. 17:37

https://www.acmicpc.net/problem/1003

 

1003번: 피보나치 함수

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

www.acmicpc.net

문제

풀이

아~~ 주 쉽게 생각했다가 짜증만 엄청 냈던 문제..

시간초과를 생각못하고 어떻게 풀던 시간초과가 나오고, 계속 '이렇게해서 안되면 어쩌란거야 ?'를

반복하다가 찾아보니 점화식을 이용하는 문제였다. 

 

이럴거면 피보나치 위에 그 함수코드는 왜있었는지 이해불가..

 

아무튼 피보나치 함수의 점화식은 아래와 같다.

 

N이 0일때, return값이 0인경우 = 1, 1인경우 = 0

N이 1일때, return값이 0인경우 = 0, 1인경우 = 1

N이 2일때, return값이 0인경우 = 1, 1인경우 = 1

N이 3일때, return값이 0인경우 = 1, 1인경우 = 2

N이 4일때, return값이 0인경우 = 2, 1인경우 = 3

N이 5일때, return값이 0인경우 = 3, 1인경우 = 5

.....

 

0[N] = 0[N-1] + 0[N-2]

1[N] = 1[N-1] + 1[N-2] 

 

와 같다고 볼 수 있다.

그럼 문제는 아주 간단해진다. 아래 코드를 참조하자

 

Code ( C++ )

#include <iostream>

using namespace std;

int T, N;
int _zero[41] = { 1,0, };
int _one[41] = { 0,1, };

int main()
{
	cin >> T;

	while (T--)
	{
		cin >> N;

		for (int i = 2; i <= N; i++)
		{
			_zero[i] = _zero[i - 1] + _zero[i - 2];
			_one[i]  = _one[i - 1] + _one[i - 2];
		}
		cout << _zero[N] << " " << _one[N] << "\n";
	}
}

 

'💻 OnlineJudge > Baekjoon' 카테고리의 다른 글

[백준 / BOJ] C++ 2798 블랙잭  (0) 2022.12.15
[백준 / BOJ] C++ 1107 리모컨  (0) 2022.12.15
[백준 / BOJ] C++ 2448 별찍기 - 11  (0) 2022.12.07
[백준 / BOJ] C++ 2407 조합  (0) 2022.12.07
[백준 / BOJ] C++ 2096 내려가기  (0) 2022.11.28
    '💻 OnlineJudge/Baekjoon' 카테고리의 다른 글
    • [백준 / BOJ] C++ 2798 블랙잭
    • [백준 / BOJ] C++ 1107 리모컨
    • [백준 / BOJ] C++ 2448 별찍기 - 11
    • [백준 / BOJ] C++ 2407 조합
    스쳐가는비
    스쳐가는비
    The biggest risk is not taking any risk

    티스토리툴바