Computer/Algorithm_Java
[BaekJoon] 10870번 피보나치 수 5 문제 풀이 (Success)
HJ0216
2023. 9. 11. 15:43
728x90
10870번: 피보나치 수 5
피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가
www.acmicpc.net
☕Language: Java
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
31
32
33
34
35
36
|
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int N = Integer.valueOf(st.nextToken());
int[] arr = new int[N + 1];
arr[0] = 0;
if (N >= 1) {
arr[1] = 1;
for (int i = 2; i <= N; i++) {
arr[i] = arr[i - 1] + arr[i - 2];
}
}
bw.write(arr[N] + "");
bw.flush();
bw.close();
}
}
|
🤔 해설
1. if (N >= 1) { ... }
- N=0일 때, arr[1]을 입력하면 ArrayIndexOutofBoundsException이 발생하므로 조건문에서 처리
2. arr[i] = arr[i - 1] + arr[i - 2];
- Fn = Fn-1 + Fn-2 (n ≥ 2)
😮 이 외의 풀이
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
31
32
|
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int N = Integer.valueOf(st.nextToken());
bw.write(fibonacci(N) + "");
bw.flush();
bw.close();
}
public static long fibonacci(int N) {
if(N==0) return N;
if(N==1) return N;
return fibonacci(N-2) + fibonacci(N-1);
}
}
|
1. fibonacci(int N)
- 재귀호출 사용
🔗 소스 코드
GitHub
📚 참고 자료
[백준] 10870번 : 피보나치 수 5 - JAVA [자바]
st-lab.tistory.com
728x90