알고리즘/프로그래머스

두 정수 사이의 합(JAVA)

mrban 2022. 1. 14. 16:21

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