[백준] 2747번 : 피보나치 수 (JAVA)

2026. 3. 4. 23:52·코테(Solved.ac + Programmers)
728x90

📌 문제 링크

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


📌 문제 개요

정수 n이 주어질 때 n번째 피보나치 수 F(n) 을 출력
피보나치 정의는 다음과 같다.

  • F(0) = 0
  • F(1) = 1
  • F(n) = F(n-1) + F(n-2) (n ≥ 2)

📌 접근 방법

피보나치 수는 이전 두 값만 알면 다음 값을 만들 수 있다.
따라서 배열을 만들지 않고 a(F(n-2)), b(F(n-1)) 두 변수만 이용해 반복문으로 계산


📌 핵심 아이디어

  • a=0, b=1로 시작
  • temp = a + b로 다음 피보나치 생성
  • a=b, b=temp로 값 갱신
  • 반복이 끝나면 b가 F(n)

예외 처리: n=0이면 바로 0 출력


📌 전체 코드

package no_2747;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class No2747 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());

        int a = 0; // F(0)
        int b = 1; // F(1)

        if (n == 0) {
            System.out.println(0);
            return;
        }

        for (int i = 2; i <= n; i++) {
            int temp = a + b;
            a = b;
            b = temp;
        }

        System.out.println(b);
    }
}

📌 정리

  • 피보나치 수는 이전 두 항만으로 다음 항을 만들 수 있다.
  • 반복문으로 계산하면 시간복잡도 O(n)
  • 배열을 쓰지 않아 공간복잡도 O(1)로 최적화 가능하다.
728x90

'코테(Solved.ac + Programmers)' 카테고리의 다른 글

[백준] 13241번 : 최소공배수 (JAVA)  (0) 2026.03.06
[백준] 2018번 : 수들의 합 5 (JAVA)  (0) 2026.03.05
[백준] 2057번 : 팩토리얼 분해 (JAVA)  (0) 2026.03.03
[백준] 1418번 : K-세준수 (JAVA)  (0) 2026.03.02
[백준] 10870번 : 피보나치 수 5 (JAVA)  (0) 2026.03.01
'코테(Solved.ac + Programmers)' 카테고리의 다른 글
  • [백준] 13241번 : 최소공배수 (JAVA)
  • [백준] 2018번 : 수들의 합 5 (JAVA)
  • [백준] 2057번 : 팩토리얼 분해 (JAVA)
  • [백준] 1418번 : K-세준수 (JAVA)
PUSH → MERGE → DEPLOY
PUSH → MERGE → DEPLOY
데이터 흐름과 운영 자동화를 설계하는 백엔드 개발자
  • PUSH → MERGE → DEPLOY
    Coding Dongin
    PUSH → MERGE → DEPLOY
  • 전체
    오늘
    어제
    • MEUN
      • 코테(Solved.ac + Programmers)
      • BootCamp(JAVA)
      • JAVA
      • SpringBoot
      • JavaScript
      • JSP
      • DB(SQL)
      • React
      • HTML_CSS
      • jQuery
      • SCSS
      • GSAP
      • 설치 + 꿀팁
      • 정보처리기사 오답노트
      • 정보처리기사 기출문제
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • GIT
  • 공지사항

  • 인기 글

  • 태그

    알고리즘
    정처기
    백엔드개발자
    level1
    실기
    정처기실기
    정보처리기사
    구현
    자료구조
    java
    배열
    코딩테스트
    dp
    프로그래머스
    브루트포스
    문자열
    solved.ac
    기출문제
    백준
    springboot
    Level2
    정보처리기사 실기 기출문제
    정처기오답노트
    수학
    완전탐색
    level0
    시뮬레이션
    피보나치
    자바
    정렬
  • 최근 댓글

  • 최근 글

  • 250x250
  • hELLO· Designed By정상우.v4.10.4
PUSH → MERGE → DEPLOY
[백준] 2747번 : 피보나치 수 (JAVA)
상단으로

티스토리툴바