문제
해결 방법
계속 원하는 값이 맞게 나오는데 틀렸다고 나와서 상당히 해맸다...
n이 10,000 까지인 것에 주의해서 문제에 접근을 해야 한다. long형으로 변수를 바꿔봐도 overflow가 발생하였다.
자바에서 BigInteger를 이용하여 문제를 해결할 수 있었다.
작성 코드
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.math.BigInteger;
class Main{
static BigInteger dp[];
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());
dp = new BigInteger[n+2];
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(String.valueOf(dp[n]));
bw.flush();
br.close();
bw.close();
}
}
'자료구조&알고리즘' 카테고리의 다른 글
[백준]1978번 : 소수 찾기 (0) | 2022.07.17 |
---|---|
[자료구조] HashSet(집합) (0) | 2022.07.16 |