[Algorithm] 피보나치 수

2025. 1. 23. 09:47·Algorithm/Practice

문제 설명

피보나치 수는 F(0) = 0, F(1) = 1일 때, 1 이상의 n에 대하여 F(n) = F(n-1) + F(n-2) 가 적용되는 수 입니다.

예를들어

  • F(2) = F(0) + F(1) = 0 + 1 = 1
  • F(3) = F(1) + F(2) = 1 + 1 = 2
  • F(4) = F(2) + F(3) = 1 + 2 = 3
  • F(5) = F(3) + F(4) = 2 + 3 = 5

와 같이 이어집니다.

2 이상의 n이 입력되었을 때, n번째 피보나치 수를 1234567으로 나눈 나머지를 리턴하는 함수, solution을 완성해 주세요.

 

문제 풀이1

  • 재귀함수

코드 작성

int Fibonacci(int n) {
   if (n <= 1)
       return n;
    
    return (Fibonacci(n-1) + Fibonacci(n-2)) % 1234567;
}

int solution(int n) {
    return Fibonacci(n);
}

잦은 함수호출로 인해 시간 초과가 발생하였다.

 

 

문제 풀이2
  • 반복 계산
코드 작성
int Fibonacci(int n) {
    int prev1 = 0, prev2 = 1;
    int current;

    for (int i = 2; i <= n; ++i) {
        current = (prev1 + prev2) % 1234567;
        prev1 = prev2;
        prev2 = current;
    }

    return current;
}

int solution(int n) {
    return Fibonacci(n);
}

재귀함수 호출 대신 반복문으로 풀이 방식을 바꾼 결과

테스트를 통과할 수 있었다.

'Algorithm > Practice' 카테고리의 다른 글

[Algorithm] 예상 대진표  (0) 2025.01.23
[Algorithm] 카펫  (1) 2025.01.23
[Algorithm] 이진 변환 반복하기  (0) 2025.01.22
[Algorithm] JadenCase 문자열 만들기  (1) 2025.01.22
[Algorithm] 최댓값과 최솟값  (0) 2025.01.22
'Algorithm/Practice' 카테고리의 다른 글
  • [Algorithm] 예상 대진표
  • [Algorithm] 카펫
  • [Algorithm] 이진 변환 반복하기
  • [Algorithm] JadenCase 문자열 만들기
DevColIn
DevColIn
복잡함을 단순하게
  • DevColIn
    심플한 코딩생활
    복잡함을 단순하게
  • 전체
    오늘
    어제
    • 전체보기 (223)
      • Unreal 부트캠프 (49)
        • TIL (34)
        • 사전캠프 (7)
        • 본캠프 (8)
      • Unrael (10)
        • 환경설정 (0)
        • Basic (19)
        • Component (5)
        • GAS (GameplayAbilitySystem) (3)
        • AI (2)
        • Implement (10)
        • UI (1)
        • Error (1)
        • Network (2)
        • Tip (1)
      • Level Design (5)
      • Math (1)
      • Design Pattern (16)
      • Computer Science (2)
        • Network (1)
        • Database (1)
      • Algorithm (79)
        • Basic (4)
        • Practice (74)
      • C++ (4)
        • Basic (4)
      • Tool (0)
      • Game (1)
  • 블로그 메뉴

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

  • 공지사항

  • 인기 글

  • 태그

    퀘스트
    KPT회고
    basic
    gas
    알고리즘
    본캠프
    하드 레퍼런싱
    디자인패턴
    소프트 레퍼런신
    Til
    c++
    사전캠프
    디자인 패턴
    액터
    Design Pattern
    게임동기화
    레벨디자인
    assetmanager
    GameplayEffect
    tsoftobjectptr
    Implement
    Algorithm
    Animation
    actor
    unrealengine
    unreal
    DesignPattern
    AI
    내일배움캠프
    component
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
DevColIn
[Algorithm] 피보나치 수
상단으로

티스토리툴바