본문 바로가기
알고리즘/Java 코딩 테스트 준비

[Java] 피보나치 수열

by Dev dreamer 2023. 2. 2.

 

문제

 

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

 

출력되는 피보나치 수열의 개수를 입력하면 그 개수에 해당하는 피보나치 수열이 출력된다

 

입력예제

 

10

 

출력예제

 

1 1 2 3 5 8 13 21 34 55

 

💡 1. 나의 풀이 과정


생각보다 간단했다.

피보나치 수열의 수를 처음에 입력받고 피보나치 수열을 그 개수만큼 출력하면 되는 문제이다

int 를 일시적으로 저장해서 하면 되겠다. 정도로 생각했던것 같다.

 

solution 으로 넘겨준 int 를 이용해서

arr 객체를 생성하고

처음 숫자 1,1 을 저장할 int 변수와 arr[0], arr[1]에 1,1 을 저장해주고

for 문을 통해 2번째 index 부터 arr 값을 저장했다

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

public class Main {
	
	public int[] solution(int num) {
		int[] answer=new int[num];
		int temp1=1;
		int temp2=1;
		int temp3;
		answer[0]=temp1;
		answer[1]=temp2;
		for(int i=2; i<num;i++) {
			
			temp3=temp1+temp2;
			answer[i]=temp3;
			temp1=temp2;
			temp2=temp3;
		
		}
		return answer;
	}
	
	public static void main(String[] args) throws NumberFormatException, IOException {
		Main T = new Main();
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		
		int num = Integer.parseInt(br.readLine());

		for (int x : T.solution(num)) {
			System.out.print(x+" ");
		}
		
	}
}

 

 

💡 2. 강사님 풀이


강사님은 int를 저장할 변수를 따로 선언하지 않고 arr 내부에 index를 이용해서 더 쉽게 푸셨다.

 

배열을 사용하지 않고 구하는 방법.(바로 그때그때 출력하는 방식으로 solution for문 안에 출력문을 넣음)

 

 

 

 

 

코테 관련해서 많이 부담스러웠는데 강의를 통해 푸는 방법들을 배우니 이 시간이 즐겁습니다.

진짜 기능하나하나 다양한 방법으로 잘 가르쳐주십니다.

출처 : 자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비 대시보드 - 인프런 | 강의 (inflearn.com)

'알고리즘 > Java 코딩 테스트 준비' 카테고리의 다른 글

[Java] 점수 계산  (0) 2023.02.03
[Java] 뒤집은 소수  (0) 2023.02.03
[Java] 가위바위보 문제  (0) 2023.02.01
[Java] 보이는 학생(키 순서대로 세우기)  (0) 2023.01.31
[Java] 큰 수 출력하기.  (0) 2023.01.31

댓글