두 정수 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
값을 리턴해준다.