21.08.07 기록

최대 1 분 소요

백준 알고리즘 10870 풀이

🎆나의 풀이(메모리 14.2MB, 시간 136ms로 통과)
  import java.io.BufferedReader;
  import java.io.IOException;
  import java.io.InputStreamReader;

  public class B10870 {
      public static void main(String[] args) throws IOException {
          BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

          int res = fibonacci(Integer.parseInt(br.readLine()));
          System.out.println(res);
      }

      public static int fibonacci(int N) {
          if(N == 0) { return 0; }
          if(N == 1) { return 1; }
          return (fibonacci(N-1) + fibonacci(N-2));
      }
  }


🎆해설(메모리 14.2MB, 시간 136ms로 통과)

-해설에서는 재귀와 배열 총 두 가지 방법으로 풀이했다.
-아래는 배열로 푼 풀이이다.

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

  public class B10870 {
      public static void main(String[] args) throws IOException {
          BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

          int N = Integer.parseInt(br.readLine());
          int[] fibonacci = new int[N+1];
          for(int i = 0; i < fibonacci.length; i++) {
              if(i == 0) { fibonacci[i] = 0; }
              else if(i == 1) { fibonacci[i] = 1; }
              else { fibonacci[i] = (fibonacci[i-1] + fibonacci[i-2]); }
          }
          System.out.println(fibonacci[N]);
      }
  }

카테고리:

업데이트: