백준 11399번 "피보나치 함수" [Dynamic Programming 점화식]

2026. 1. 29. 12:51·Coding Test/Dynamic Programming

 

 

문제

 

 

-----------------------------------------------------------------------------------------------------------------------------------------------------------------

 

문제 접근 순서.

 

1. 해당 문제는 시간제한이 0.25초로 빡빡한 문제로 일반적인 DFS 구조를 사용해서 재귀함수를 호출 하면서 O(2^n)씩 해당되므로

    c++ 1초당 계산이 약 10^8인 것을 계산하면 해당 방법으로는 문제를 해결할 수 없음을 알 수 있다.

 

2. DP 방법을 이용하는데 DP는 이전에 구한 값을 미리 저장해 두고 재사용하여 불필요한 함수 호출과 중복 계산을 제거하는 방식이다.

 

 

-----------------------------------------------------------------------------------------------------------------------------------------------------------------

 

#include <iostream>
#include <vector>

using namespace std; 


int main()
{

	int i_TestCaseCount; 

	cin >> i_TestCaseCount; 

	vector<pair<int, int>> m_vec;
	


	int dp_0[41] = { 0 };
	int dp_1[41] = { 0 };

	// 0 -> 1, 0
	// 1 -> 0 ,1
	// 2 -> 1 ,1
	// 3 -> 1 ,2  ( 1+2)
	// 4 -> 2, 3  ( 2+3)
	// 5 -> 3, 5  ( 4+3) 
	// 6 -> 5, 8  

	dp_0[0] = 1;
	dp_1[0] = 0;

	dp_0[1] = 0;
	dp_1[1] = 1;

	dp_0[2] = 1;
	dp_1[2] = 1;


	for(int i=3; i<=40; i++)
	{
		dp_0[i] = dp_0[i - 2] + dp_0[i - 1];
		dp_1[i] = dp_1[i - 2] + dp_1[i - 1];
	}


	for(int i=0; i<i_TestCaseCount; i++)
	{
		int inputNum; 
		cin >> inputNum;
		
		m_vec.push_back(make_pair(dp_0[inputNum], dp_1[inputNum]));
	}

	for(auto& iter : m_vec)
	{
		cout << iter.first << " " << iter.second << "\n";
	}





	return 0;
}

 

'Coding Test > Dynamic Programming' 카테고리의 다른 글

프로그래머스 [Level3] 정수 삼각형 [Dynamic Programming]  (0) 2026.02.20
백준 1149번 "RGB" 거리 (Dynamic Programming)  (0) 2026.02.12
백준 9095번 " 1, 2 ,3" 더하기 [Dynamic Programming]  (0) 2026.01.28
프로그래머스 [level3] N으로 표현 (Dynamic Programming)  (0) 2025.11.12
백준 1431번 "1로 만들기" [Dynamic Programming 알고리즘]  (1) 2025.11.11
'Coding Test/Dynamic Programming' 카테고리의 다른 글
  • 프로그래머스 [Level3] 정수 삼각형 [Dynamic Programming]
  • 백준 1149번 "RGB" 거리 (Dynamic Programming)
  • 백준 9095번 " 1, 2 ,3" 더하기 [Dynamic Programming]
  • 프로그래머스 [level3] N으로 표현 (Dynamic Programming)
seonhwan2547
seonhwan2547
seonhwan2547 님의 블로그 입니다.
  • seonhwan2547
    seonhwan2547 님의 블로그
    seonhwan2547
  • 전체
    오늘
    어제
    • 분류 전체보기 (80)
      • Unreal Project (17)
        • Khazan 모작 프로젝트 (2)
        • Unreal Study (10)
        • Blueprint (5)
      • Directx11 Project (11)
        • Thymesia 팀 프로젝트 (8)
        • Kaku Ancient Seal 개인 프로젝트 (2)
        • Thymesia Animation Tool 개발 (0)
      • Algorithm (6)
        • Binary_Search (2)
        • Greedy (1)
        • Dynamic Programming (1)
        • A-star (1)
      • Coding Test (31)
        • Brutal Force (2)
        • Sort (5)
        • DFS (3)
        • Binary_Search (4)
        • BFS (6)
        • Hash (2)
        • Dynamic Programming (6)
        • Greedy (1)
        • BackTracking (1)
        • Binary_Tree (1)
      • STL Container (1)
        • unorded_set (0)
        • priority_queue (1)
      • C++ 공부 및 몰랐던점 (8)
        • Smart pointer (1)
      • Visual Studio 설정관련 공부 (1)
      • Console Project (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 블로그 소개
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    GameProgramming
    Unreal Engine
    Unreal
    CodingTest
    hash
    Game Programming
    blueprint
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
seonhwan2547
백준 11399번 "피보나치 함수" [Dynamic Programming 점화식]