[백준] 15596번 : 정수 N개의 합 - Java(자바)

이정우·2021년 8월 16일
0

백준

목록 보기
2/32

간단한 함수식을 만드는 문제였습니다. 좀 헷갈린 부분은 제출 방식이었습니다.

Java 코드

public class Test {

	long sum(int[] a) {
		long hap = 0;
		for (int i = 0; i < a.length; i++) {
			hap += a[i];
		} 
		return hap;
	}
}

sum 메소드의 long hap = 0; 변수 초기화 부분에서 int로 주게 되면 return값이 int 범위 안에 있다면 자동 형변환이 일어나서 별 문제 없이 실행됩니다.하지만 문제의 조건에서 배열 길이가 3,000,000이고 배열의 각 원소의 최대 크기는 1,000,000이기에 계산을 진행하다 보면 int 범위를 넘는 경우가 발생하기에 long으로 변수 선언을 해줘야합니다.

보시면 int형으로 선언시 int최대 범위인 2147483647을 입력시 제대로 된 값을 보내주지면 여기에 1을 더하면 오버플로우가 되어서 나오는 걸 볼 수 있습니다.

출처 : 백준 15596번 https://www.acmicpc.net/problem/15596

profile
프로그래밍 공부 중!

0개의 댓글