문제
설명
1) 피보나치 수열을 출력한다. 피보나치 수열이란 앞의 2개의 수를 합하여 다음 숫자가 되는 수열이다.
2) 입력은 피보나치 수열의 총 항의 수 이다. 만약 7이 입력되면 1 1 2 3 5 8 13을 출력하면 된다.
입력
첫 줄에 총 항수 N(3<=N<=45)이 입력된다.
출력
첫 줄에 피보나치 수열을 출력합니다.
내 풀이
import java.util.Scanner;
public class Main2_4 {
public int[] Solution(int n) {
int[] answer = new int[n];
answer[0] = 1;
answer[1] = 1;
for (int i = 2; i < n; i++) {
answer[i] = answer[i-2] + answer[i-1];
}
return answer;
}
public static void main(String[] args) {
Main2_4 T = new Main2_4();
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
for(int x : T.Solution(num))
System.out.print(x + " ");
}
}
선생님 풀이 - 배열 사용 X
import java.util.Scanner;
public class Main2_4 {
public void Solution(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) {
Main2_4 T = new Main2_4();
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
T.Solution(num);
}
}
결과
알게된 점
피보나치 수열은 재귀함수로만 작성해서 재귀함수로 어떻게든 해봐야하나 했는데 그냥 단순하게 하면 되는 거여따...
문제 풀이를 하면 할수록 나는 너무 복잡하게만 생각한다ㅠㅠ 컴퓨터는 멍청하니까 컴퓨터가 알아들을 수 있도록 생각하는 연습하면 좋겠다
- 피보나치 수열 (재귀함수 ver)
https://rookie-programmer.tistory.com/33
'Algorithm > Inflearn' 카테고리의 다른 글
[Inflearn] 자바 알고리즘 문제풀이 #02-05 5. 소수(에라토스테네스 체) (0) | 2022.11.10 |
---|---|
[Inflearn] 영리한 프로그래밍을 위한 알고리즘 - 순환 (Recursion) 의 개념과 기본 예제 2 (0) | 2022.11.09 |
[Inflearn] 영리한 프로그래밍을 위한 알고리즘 - 순환 (Recursion) 의 개념과 기본 예제 1 (0) | 2022.11.08 |
[Inflearn] 자바 알고리즘 문제풀이 #02-03 3. 가위 바위 보 (0) | 2022.11.08 |
[Inflearn] 자바 알고리즘 문제풀이 #02-02 2. 보이는 학생 (0) | 2022.11.07 |