티스토리 뷰
반응형
문제
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)
- 첫번째 풀이와 두번째 풀이의 다른 점은 배열 사용에 있다.
반응형
'Java > Coding Test' 카테고리의 다른 글
[코딩테스트] 뒤집은 소수 (0) | 2022.03.08 |
---|---|
[코딩테스트] 소수(에라토스테네스 체) (1) | 2022.03.07 |
[코딩테스트] 가위 바위 보 (0) | 2022.03.02 |
[코딩테스트] 보이는 학생 (0) | 2022.03.02 |
[코딩테스트] 큰 수 출력하기 (0) | 2022.03.02 |