Computer Science/Algorithm
[Inflearn] 피보나치 수열
코딩맛
2022. 11. 20. 23:44
인프런의 자바(Java)알고리즘 문제풀이 입문:코딩테스트 대비 강좌의 강의를 보고 문제 해설을 작성해보았습니다.
섹션2. Array(1,2차원 배열)의 4. 피보나치 수열 강의편 입니다.
설명
1) 피보나키 수열을 출력한다. 피보나치 수열이란 앞의 2개의 수를 합하여 다음 숫자가 되는 수열이다.
2) 입력은 피보나치 수열의 총 항의 수 이다. 만약 7이 입력되면 1 1 2 3 5 8 13을 출력하면 된다.
입력
첫 줄에 총 항수 N(3<=N<=45)이 입력된다.
출력
첫 줄에 피보나치 수열을 출력합니다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class 피보나치_수열 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int num = Integer.parseInt(br.readLine());
solution(num);
}
public static void solution(int n) {
int[] arr = new int[n];
arr[0] = 1;
arr[1] = 1;
for(int i=2; i<n; i++) {
arr[i] = arr[i-1]+arr[i-2];
}
for(int a : arr) {
System.out.print(a+" ");
}
}
}
>>해설
앞의 2개의 수를 더해서 다음 숫자가 되려면 앞의 두 수의 값이 1이 되어야 한다.
그래서 입력 받은 n 개 만큼의 배열을 생성하고 배열의 0번째와 1번째 칸에 1을 대입하였다.
그리고 반복문을 돌면서 인덱스 역할을 하는 i 값을 2부터 시작하고 i-1번째와 i-2번째 값을 더해서 i번째에 대입하였다.
그러면 n값까지 i가 증가하면서 피보나치 수열을 생성하여 arr 배열에 저장 시킬 것이다.
최종적으로 arr값을 foreach문을 이용하여 a 변수로 하나씩 꺼내서 출력하며 프로그래밍을 종료시킨다.