Notice
Recent Posts
Recent Comments
Link
04-27 12:54
«   2025/04   »
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
Archives
Today
Total
관리 메뉴

<<개발일지>>

[배열] 4. 피보나치 수열 본문

코딩테스트

[배열] 4. 피보나치 수열

개발하는지호 2023. 12. 12. 22:20
4. 피보나치 수열
 

설명

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

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

입력

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

출력

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

예시 입력 1 

10

예시 출력 1

1 1 2 3 5 8 13 21 34 55

 

<<풀이>>

-나의 풀이-

 

금방 풀었다.

import java.util.Scanner;

class Main {

    public int[] soltuion(int n) {
        int[] answer = new int[n];
        answer[0] = 1;
        answer[1] = 1;

        for (int i = 2; i < n; i++) {

            answer[i] = answer[i - 1] + answer[i - 2];
        }

        return answer;
    }



    public static void main(String[] args) {
        Main T = new Main();
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        for (int a : T.soltuion(n)) {
            System.out.print(a + " ");
        }
    }
}

 

 

-강사님 풀이-

 

우선 강사님이 두 가지 방법으로 풀었는데, 첫 방식은 나와 같다. 너무 금방 풀어서 조건을 추가해서 다시 풀어보았다.

 

하드 코딩이다 ㅋㅋ 

 

*배열을 사용하지 않고 풀기

 

import java.util.Scanner;

class Main {

    public void soltuion(int n) {
        int a = 1, b = 1, c;
        System.out.print(a + " " + b + " ");
        for (int i = 2; i < n; i++) {
            c = a + b;
            System.out.print(c + " " );
            a = b;
            b = c;
        }
    }



    public static void main(String[] args) {
        Main T = new Main();
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        T.soltuion(n);
    }
}

 

이번 꺼는 메서드의 리턴값이 void이다. 바로 콘솔로 출력할 때는 void로 리턴값을 준다.

그리고 int a=1, b=1 , c; 이런 식의 표현은 딱딱했던 나의 규율을 조금 풀어준다. 이러한 여유러움 나도 가지고 싶다.

 

이렇게 다양하게 문제를 접근하니 나의 시각이 더 넓어지는 거 같다. 나도 여러가지 계산 방법을 구현해보면서 이러한 시각을 확장해 나가자.

 

'코딩테스트' 카테고리의 다른 글

[배열] 6. 뒤집은 소수  (2) 2023.12.17
[배열] 5. 소수(에라토스테네스 체)  (1) 2023.12.14
[배열] 3. 가위 바위 보  (0) 2023.12.12
[배열] 2. 보이는 학생  (0) 2023.12.10
[배열] 1. 큰 수 출력하기  (1) 2023.12.08