본문 바로가기
프로그래밍/알고리즘 풀이

백준 1003 피보나치 함수 자바

by 방구석개발자 2021. 7. 13.
반응형

피보나치 함수 문제 보러가기

 

1003번: 피보나치 함수

각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다.

www.acmicpc.net

문제 설명

자바 코드

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

public class Main {

    static int[] result=new int[41];
    public static void main(String[] args) throws Exception{
        BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
        int testCase=Integer.parseInt(br.readLine());
        result[0]=0; result[1]=1; result[2]=1;
        for(int i=0;i<testCase;i++){
            int n=Integer.parseInt(br.readLine());
            if (n == 0) {
                System.out.println("1 0");
            } else if (n == 1) {
                System.out.println("0 1");
            } else {
                fibonacci(n);
                System.out.println(result[n-1]+" "+result[n]);
            }

        }
    }

    static int fibonacci(int n) {
        if (n == 0) {
            return 0;
        } else if (n == 1) {
            return 1;
        } else {
            if(result[n]!=0){
                return result[n];
            }
            else{
                result[n]=fibonacci(n-1) + fibonacci(n-2);
                return result[n];
            }
        }
    }

}

문제 풀이

이 문제는 결과값을 배열에 담아서 미리미리 꺼내서 사용하면 쉽게 풀 수 있습니다.

반응형

댓글