본문 바로가기

알고리즘/백준

[백준] 1003번 자바

정답 코드

import java.util.Scanner;

public class Baek1003 {

    public static void main(String[] args){
        int T;
        int n;
        int[] a,b;

        Scanner sc = new Scanner(System.in);

        T = sc.nextInt();

        for(int i = 0 ; i < T; i++){
            n = sc.nextInt();
            a = new int[n+2];
            b = new int[n+2];
            a[0] = 1;
            a[1] = 0;
            b[0] = 0;
            b[1] = 1;

            if(n == 0)
                System.out.println(1+" "+0);
            else if(n==1)
                System.out.println(0+" "+1);
            else{
                for(int j = 2 ; j < n+1; j++){
                    a[j] = a[j-1] + a[j-2];
                    b[j] = b[j-1] + b[j-2];
                }
                System.out.println(a[n]+" "+b[n]);
            }
        }
    }
}

 

처음에 재귀함수를 이용하여 코드를 작성하였는데 시간초과가 되었다.

그래서 재귀함수대신 반복문을 사용하여 문제를 해결하였다.

'알고리즘 > 백준' 카테고리의 다른 글

[백준] 1004번 자바  (0) 2022.02.17
[백준] 1002번 자바  (0) 2022.02.17