saurus2
Saurus2
saurus2
전체 방문자
오늘
어제
  • 분류 전체보기
    • 개발
      • AJAX
    • ML Ops
    • Profile
    • 음식점
    • 배낭여행
    • 컴퓨터공학
      • 알고리즘 공부
      • C++
      • Sever 스터디
      • Java spring
      • 알고리즘 _ 문제해결
      • 딥러닝
      • Java 정리
      • Python
      • LeetCode 1000
      • Machine Learning Study
      • Sign language Detection Pro..
      • LeetCode Solutions
    • 비콘
    • 데일리 리포트
    • 유학일기
      • 영어 공부
      • Daily
    • AI Master Degree
      • Data Mining
      • AI and Data engineering
      • Math Foundations for Decisi..
      • Natural Language Processing

블로그 메뉴

  • 홈
  • 태그
  • 미디어로그
  • 위치로그
  • 방명록

공지사항

인기 글

태그

  • 취업준비
  • 리트코드
  • 문제해결능력
  • c++
  • Python
  • 개발자
  • 알고리즘
  • 릿코드
  • LeetCode
  • 개발자 취업준비
  • BFS
  • 알고리즘문제해결
  • 온라인저지
  • DFS
  • 파이썬
  • two pointer
  • 취준
  • 백준
  • 딥러닝
  • 딕셔너리

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
saurus2

Saurus2

1003 번 문제 피보나치 함수 Dynamic Programming
컴퓨터공학/알고리즘 _ 문제해결

1003 번 문제 피보나치 함수 Dynamic Programming

2017. 2. 6. 18:59

DP를 공부하는데 처음 해보면 괜찮을 문제같다. 

동전 문제를 바로 해보는 건 조금 어려운것 같기도 하고, 아무튼 

0을 호출했을때 0을 출력 1을 호출했을때 1을 출력.

이것을 계속 단계 별로 저장해 나아가면서, 최상단의 호출한 번호에서 

몇번을 출력해 주었는지 알아내면 된다. 


DP 배열

 0

1

2 

3 

4 

5 

6 

7 

8 

9 

 1/0

0/1 

1/1 

1/2 

2/3 

3/5 

5/8 

. 

. 

. 

dp[0] = 1/0; dp[1] = 0/1;

2는 0과 1을 더한 것이고, 3은 2와 1의 결과 값을 더한 것이다. 

즉 앞에서 부터, 차례대로 결과값을 쌓아가면 된다. 


소스 보기



#include <stdio.h>

int main(){

    int dp[41][2]={0};

    int n=0,t=0;

    scanf("%d",&n);

    dp[0][0]=1; dp[0][1]=0;

    //0이 출력하는 0의 갯수 1, 1의 갯수 0

    dp[1][0]=0; dp[1][1]=1;

    //1이 출력하는 0의 갯수 0, 1의 갯수 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];

        //2를 호출했을때 0과 1에서 나온 값을 더해서 저장

        //계산된 값을 중첩하여 더해 나감

    }

    for(int i=0; i<n; i++) {

        scanf("%d",&t);

        printf("%d %d\n",dp[t][0],dp[t][1]);

    }

    return 0;

}


저작자표시 (새창열림)

'컴퓨터공학 > 알고리즘 _ 문제해결' 카테고리의 다른 글

1799 백준 비숍 백트래킹  (0) 2017.02.09
11778 피보나치 수와 최대공약수 행렬 계산 방법  (0) 2017.02.06
5704 팬그램 문자열 처리 문제 백준  (0) 2017.01.29
백준 5026 박사 과정 문자열 처리  (0) 2017.01.29
백준 11024번 더하기 4  (0) 2017.01.29
    '컴퓨터공학/알고리즘 _ 문제해결' 카테고리의 다른 글
    • 1799 백준 비숍 백트래킹
    • 11778 피보나치 수와 최대공약수 행렬 계산 방법
    • 5704 팬그램 문자열 처리 문제 백준
    • 백준 5026 박사 과정 문자열 처리
    saurus2
    saurus2
    Simple is Best

    티스토리툴바