
두 정수 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의 대소관계는 정해져있지 않습니다.
a | b | return |
|---|---|---|
3 | 5 | 12 |
3 | 3 | 3 |
5 | 3 | 12 |
import java.lang.Math;
class Solution {
public long solution(int a, int b) {
long sum = 0;
int min = Math.min(a,b);
int max = Math.max(a,b);
if ( min == max ) return min;
else {
for ( int i = min; i <= max; i++ ) {
sum += i;
}
}
return sum;
}
}
import java.lang.Math;
class Solution {
public long solution(int a, int b) {
long sum = 0;
int min = Math.min(a,b);
int max = Math.max(a,b);
java의 lang클래스의 Math클래스를 import하여 Math.min()과 Math.max()를 사용할 수 있도록 한다.
합계를 나타낼 변수인 sum은 long으로 잡아준다. 만약 a b 둘 다 큰 음수거나 큰 양수일 경우 int범위가 허용할 수 있는 범위를 넘어서기 때문에 넉넉히 long으로 잡아주는 것이다.
0으로 초기화를 해주어 누적을 할 수 있도록 한다.
Math.min()과 Math.max()를 사용하여 a와 b의 최솟값과 최댓값을 구하여서 for문의 초기값과 조건값을 결정한다.
if ( min == max ) return min;
else {
for ( int i = min; i <= max; i++ ) {
sum += i;
}
}
return sum;
만약 a와 b의 값이 같다면 굳이 for문을 돌린 뒤에 return sum을 할 필요가 없으므로 조건문을 달아주어 먼저 sum을 return해줄 수 있도록 한다.
만약 a와 b의 값이 같지 않다면 for문을 돌려서 a부터 b까지의 수를 sum에 누적하여 더한다. 이 때에 초기값은 min이고, 조건값은 max까지이다. i에 min을 주어 i++로 모든 수를 돌도록 한다.
for문이 종료되면 return sum으로 sum값을 리턴해준다.
