자바/코드트리

[코드트리] 앞의 두 수를 더한 수열 - 자바(Java)

Jakorithm 2024. 1. 9. 00:13
728x90

문제

https://www.codetree.ai/training-field/search/problems/a-sequence-by-adding-the-previous-two-numbers?&utm_source=clipboard&utm_medium=text

 

코드트리 | 코딩테스트 준비를 위한 알고리즘 정석

국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.

www.codetree.ai

 

 

첫 번째 항이 0이고, 두 번째 항이 1인 수열이 있다. 이 수열의 세 번째 항부터는 바로 앞의 두 항의 합을 값으로 가진다.

n이 주어졌을 때, 이 수열에서 n + 1 번째 항을 출력한다.

 

 

코드

첫 번째 줄에 정수 n이 주어진다.

  • 1 <= n <= 20
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;

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

    }

    // 피보나치 수를 계산하는 메소드
    private static int fibonacci(int n) {
        if (n <= 1) {
            return n; // n이 1 이하일 경우 그대로 리턴
        }

        int a = 0; // 초기 피보나치 수 0
        int b = 1; // 초기 피보나치 수 1
        for (int i = 2; i <= n; i++) { // n이 2 이상일 경우 n번 반복
            int temp = a;
            a = b;
            b = temp + b; // b에 a값과 b값을 더한 값 저장
        }

        return b;
    }
}

 

728x90