티스토리 뷰

반응형

 

문제

1) 피보나키 수열을 출력한다. 피보나치 수열이란 앞의 2개의 수를 합하여 다음 숫자가 되는 수열이다.

2) 입력은 피보나치 수열의 총 항의 수 이다. 만약 7이 입력되면 1 1 2 3 5 8 13을 출력하면 된다.

 

입력

첫 줄에 총 항수 N(3<=N<=45)이 입력된다.

 

출력

첫 줄에 피보나치 수열을 출력합니다.

 

 

 

예시 입력

10

예시 출력

1 1 2 3 5 8 13 21 34 55

 

 

 

 

 

문제 풀이

 

[첫번째 풀이]

import java.util.Scanner;
  
public class Main {
  public String solution(int count) {
    int num1 = 1;
    int num2 = 1;

    String result = "";

    for (int i=0; i<count; i++) {
      if (!result.isEmpty()) {
        result += " ";
      }

      if (i < 2) {
        result += "1";
        continue;
      }

      int nextNum = num1 + num2;
      num1 = num2;
      num2 = nextNum;

      result += nextNum;
    }
    return result;
  }
  
  public static void main(String[] args){
    Scanner scanner = new Scanner(System.in);
    int count = Integer.parseInt(scanner.nextLine());

    Main main = new Main();
    System.out.println(main.solution(count));
  }
}

(Time 144ms / Memory 27MB)

 

[두번째 풀이]

import java.util.Scanner;
  
public class Main {
  public void solution(int count) {
    int[] result = new int[count];

    for (int i=0; i<count; i++) {
      if (i < 2) {
        result[i] = 1;
      } else {
        result[i] = result[i-2] + result[i-1];
      }

      System.out.print(result[i] + " ");
    }
  }
  
  public static void main(String[] args){
    Scanner scanner = new Scanner(System.in);
    int count = Integer.parseInt(scanner.nextLine());

    Main main = new Main();
    main.solution(count);
  }
}

(Time 153ms / Memory 27MB)

 

 

 

- 첫번째 풀이와 두번째 풀이의 다른 점은 배열 사용에 있다.

 

 

 

 

 

반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함