bw.write() 안에 int형 데이터를 넣었더니 문자형으로 변경돼서 출력된다. (답이 55면 7으로... 7의 아스키코드가 55니까)
String으로 형변환해서 출력하자!
분명 테스트케이스는 맞는데 자꾸 틀렸다고 나와서 혹시...? 하고 90을 넣고 돌려봤더니 -어쩌구저쩌구 숫자가 나왔다. 아 너무 큰 숫자구나!! 챗지피티를 이용해서 너무 큰 정수를 담는 법을 알아내서 코드를 고쳤다...
import java.io.*;
import java.math.BigInteger;
public class Main {
static BigInteger[] answers;
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());
answers = new BigInteger[n + 1];
br.close();
bw.write(String.valueOf(fibonacci(n)));
bw.flush();
bw.close();
}
static BigInteger fibonacci(int n) {
if(n==0) return BigInteger.ZERO;
if(n==1) return BigInteger.ONE;
if (answers[n] == null) {
answers[n] = fibonacci(n - 1).add(fibonacci(n - 2));
}
return answers[n];
}
}