[JAVA] int에서 오버플로우 문제 발생했을 때
int에서 오버플로우 문제 발생했을 때 발생 원인 int는 4byte즉, 32bit로 -2^31 ~ +2^31-1 즉, 약 ±2,000,000,000 까지만 표현이 가능하고 이 범위를 넘어가면 오버플로우가 발생한다. 발생 상황 int를 여러번 곱하는 for문에서 주로 발생한다. 또한, 1,000,000,007로 나눈 나머지를 요구하는 문제가 있으면 오버플로우가 발생하는지를 의심해봐야한다. 해결 방법 아래 내용 중 하나라도 지키지 않으면 오버플로우가 발생할 수 있다. 1) 계산하는 변수를 int가 아니라 long으로 선언한다. 2) for문 안에서 %= 1,000,000,007을 해준다. for문에서 곱셈을 다 하고 return 직전에 mod연산을 해주면 이미 오버헤드가 발생한 이후이므로 효과가 없다. 3..