코딩블로그
백준 실버 3 - 이친수 JAVA 본문
728x90
https://www.acmicpc.net/problem/2193
문제 자체는 잘 풀었는데 계속 틀렸다길래 질문 게시판을 보니 int말고 long으로 해야한다고 배웠다
그 이유에 대해서 지금은 완전히 이해를 못했지만, 해당 답변이 가장 잘 설명이 되어 있어 가져왔다
앞으로 문제 풀 때 이 범위 문제도 항상 고려하면서 풀어야겠다고 생각했다
import java.util.*;
import java.lang.*;
import java.io.*;
// The main method must be in a class named "Main".
class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
long[] dp = new long[N + 1];
dp[1] = 1;
if (N == 1){
System.out.println(dp[N]);
} else if (N == 2) {
dp[2] = 1;
System.out.println(dp[N]);
} else {
dp[2] = 1;
for (int i = 3; i <= N; i++) {
dp[i] = dp[i-1] + dp[i-2];
}
System.out.println(dp[N]);
}
}
}
728x90