1. 문제
두 정수 a, b가 주어질 때 a부터 b 까지의 모든 정수들의 합을 리턴하는 함수를 만들어라.
2. 제한
a와 b가 같으면 둘 중 하나 return.
a와 b는 -10,000,000 이상 10,000,000 이하인 정수.
a와 b의 대소관계는 정해져있지 않다.
3. 정답
class Solution {
public long solution(int a, int b) {
long answer = 0;
if(a <= b) {
for(int i = a; i <= b; i++) {
answer += i;
}
}
else {
for(int i = b; i <= a; i++) {
answer += i;
}
}
return answer;
}
}
4. 설명
4-1. a, b를 입력받고 a가 b이하인 경우와 a가 b보다 큰 경우를 구분하여 for문을 돌린다.
4-2. a가 b이하인 경우 a부터 a+1, a+2, .... , b까지 더한다.
4-3. a가 b보다 큰 경우 b부터 b+1, b+2, .... , a까지 더한다.
4-4. answer값을 return한다.
5. 참고
5-1. a와 b는 -10,000,000 이상 10,000,000 이하이기 때문에 answer값이 최악의 경우 최소 -50,000,005,000,000에서 최대 50,000,005,000,000가 나올 수 있다. 따라서 answer는 절대로 int형을 쓸 수 없고 long형을 써야한다(표현범위 초과 문제).
'알고리즘 > 프로그래머스' 카테고리의 다른 글
문자열을 정수로 가져오기(JAVA) (0) | 2022.01.15 |
---|---|
음양더하기(JAVA) (0) | 2022.01.15 |
짝수와 홀수(JAVA) (0) | 2022.01.14 |
직사각형 별찍기(JAVA) (0) | 2022.01.14 |
가운데 글자 가져오기(JAVA) (0) | 2022.01.14 |