
문제 설명
두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요.
예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다.제한 조건
a와 b가 같은 경우는 둘 중 아무 수나 리턴하세요.
a와 b는 -10,000,000 이상 10,000,000 이하인 정수입니다.
a와 b의 대소관계는 정해져있지 않습니다.
public static void main(String[] args) {
long answer = 0;
int a = (int) (Math.random()*10);
int b = (int) (Math.random()*10);
answer = getSum(a, b);
System.out.println("두 정수 사이의 합 : " + answer);
}
private static long getSum(int a, int b) {
// 매개 번수 a, b가 대소관계가 정해져있지 않다.
int num1 = Math.min(a, b);
int num2 = Math.max(a, b);
// 제한 조건중 같으면 아무 수나 반환
if(num1 == num2) {
return num1;
}
long sum = 0;
for(int i = num1; i <= num2; i++) { // num1 부터 num2 사이 숫자들 전부다 누적합
sum += i;
}
return sum;
}
포인트
1. 등차수열 공식을 기억하고 있다면, 더 쉽고 간결하게 풀 수 있다.
2. 매개변수의 대소관계가 정해져있지 않다는걸 인지하자
3. for문 조건에 삼항 연산자를 사용해도 간결하게 된다.
4. 반환형 체크 잘하자.