반응형
🔺 문제
10826번: 피보나치 수 4
피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가
www.acmicpc.net
🔺 코드
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
|
import java.util.*;
import java.io.*;
import java.math.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int N = Integer.parseInt(br.readLine());
if(N == 0) {
bw.write("0\n");
}
else if(N == 1) {
bw.write("1\n");
}
else {
BigInteger[] dp = new BigInteger[N + 1];
dp[0] = BigInteger.ZERO;
dp[1] = BigInteger.ONE;
for(int i = 2 ; i <= N ; i++) {
dp[i] = dp[i - 2].add(dp[i - 1]);
}
bw.write(dp[N] + "\n");
}
bw.flush();
bw.close();
br.close();
}
}
|
cs |
✅ 해결 아이디어
✔ DP + 큰 수 연산
- long 자료형보다 더 큰 자료형이 필요하므로 BigInteger 사용
💥 유의사항
• long형으론 부족하다.. BIg Integer을 사용하자,,,
• BufferedWriter로 출력해야 맞음 (안 그러면 99퍼에서 틀림ㅠ)
🔺 다른 풀이들
- 다들 비슷하심
💬 느낀 점
long형이면 되겠지?하고 제출했더니 보기 좋게 틀림,,,
설렁설렁 보지 말란 말이닷,,
1회독 | 2회독 | 3회독 | 4회독 | 5회독 |
V |
(참고)
[BOJ] 백준 10826번 : 피보나치 수 4 (JAVA)
문제 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n>=2)
steady-coding.tistory.com
[JAVA] 무한대 정수 BigInteger 사용하기
큰 수를 조작하는 연습문제를 풀던 중... long형의 범위가 벗어나 오류가 생겨버렸다!!!!! 헉 long형보다 큰 자료형이 뭐가 있을까... 찾다가 BigInteger 발견!! 1. BigInteger의 정의와 범위 BigInteger에 대해
elena90.tistory.com
반응형
'코테 > 백준' 카테고리의 다른 글
[백준/JAVA] 15686번: 치킨 배달 (0) | 2023.08.21 |
---|---|
[백준/JAVA] 10867번: 중복 빼고 정렬하기 (0) | 2023.08.20 |
[백준/JAVA] 1748번: 수 이어 쓰기 1 (0) | 2023.08.18 |
[백준/JAVA] 2468번: 안전 영역 (0) | 2023.08.17 |
[백준/JAVA] 5014번: 스타트링크 (0) | 2023.08.17 |