백준(B3) 2747번: 피보나치 수 (C언어 C11 C99)

2021. 10. 18. 22:26·C언어/백준 문제풀이
반응형

코드를 보기 전에: Dynamic Programming(동적 계획법)에 대해 안다면 이 문제는 쉽게 풀수 있을것이다.

이 문제가 왜 시간초과가 나는지 모르는 사람은 밑에 있는 코드를 보고 다시 한번 도전해보길 바란다.

1
2
3
4
5
6
7
8
9
10
11
int n[46];
int fibo(int x)
{
    n[0] = 0;
    n[1] = 1;
    for (int a = 2; a <= x; a++)
    {
        n[a] = n[a - 1] + n[a - 2];
    }
    return n[x];
}
cs

코드를 설명하자면 정적배열로 호출했으므로, fibo의 모든 값은 0으로 초기화 돼 있다.

그리고 피보나치 수를 구하는 공식이 n[a] = n[a-1] + n[a-2]이므로 n의 첫번째와 두번째 값은 직접 호출해야한다.

배열을 이용해서 피보나치수를 구하면 시간이 훨씬 단축되므로, 앞으로 이러한 문제를 풀때는 배열로 풀길 바란다.

 

Full code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <stdio.h>
int n[46];
int fibo(int x)
{
    n[0] = 0;
    n[1] = 1;
    for (int a = 2; a <= x; a++)
    {
        n[a] = n[a - 1] + n[a - 2];
    }
    return n[x];
}
int main()
{
    int num,result;
    scanf("%d", &num);
    result = fibo(num);
    printf("%d\n", result);
    return 0;
}
cs
반응형
'C언어/백준 문제풀이' 카테고리의 다른 글
  • 백준(S5) 10814번: 나이순 정렬 (C언어 C11 C99)
  • 백준(S3) 11399번 ATM (C언어 C11 C99)
  • 백준(S4) 10773번: 제로 (C언어 C11 C99)
  • 백준(S4) 1026번: 보물 (C언어 C11 C99)
코딩하는_대학생
코딩하는_대학생
Java Developer, Open Source Enthusiast, Proud Son
  • 코딩하는_대학생
    코딩하는 대학생에서 개발자까지
    코딩하는_대학생
  • 전체
    오늘
    어제
    • 분류 전체보기 (218)
      • 코딩하는 대학생의 책 추천 (8)
        • 클린코드 (5)
        • 헤드퍼스트 디자인패턴 (3)
      • Backend (8)
        • Spring (14)
        • AWS (3)
        • 회고 (4)
        • Redis (5)
        • 다양한 시각에서 바라본 백엔드 (3)
      • Python (35)
        • 개념 및 정리 (15)
        • 백준 문제풀이 (20)
      • JAVA (17)
        • 개념 및 정리 (14)
        • 백준 문제풀이 (2)
      • 왜? (7)
      • C언어 (42)
        • 개념 및 정리 (9)
        • 백준 문제풀이 (32)
      • 개인 공부 (27)
        • 대학 수학 (5)
        • 대학 영어 (10)
        • 시계열데이터 처리 및 분석 (5)
        • 컴퓨터 네트워크 (6)
        • 운영체제 (1)
      • 솔직 리뷰 (23)
        • 꿀팁 (6)
        • IT기기 (1)
        • 국내 여행 (7)
        • 맛집 (2)
        • 알바 리뷰 (2)
      • 대외활동 (17)
        • 체리피우미 3기 (4)
        • 꿀잠이들 6기 (13)
      • 음식 평가 (1)
      • 일상 & 근황 (2)
  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
코딩하는_대학생
백준(B3) 2747번: 피보나치 수 (C언어 C11 C99)
상단으로

티스토리툴바