본문 바로가기
  • Jetpack 알아보기
프로그래머스 - JAVA/Level 1

[JAVA] 프로그래머스 Lv.1 : 두 정수 사이의 합

by 새우버거♬ 2021. 4. 4.

두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요.
예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다.

 

 

예제:

 

Input:
a : 3, b : 5
Output:

12

Input:
a : 3, b : 3
Output:

3

 

제한 조건:

  • a와 b가 같은 경우는 둘 중 아무 수나 리턴하세요.
  • a와 b는 -10,000,000 이상 10,000,000 이하인 정수입니다.
  • a와 b의 대소관계는 정해져있지 않습니다.

 


Solution #1

class Solution {
    public long solution(int a, int b) {
        long answer = 0;
        for (int i = Math.min(a, b); i <= Math.max(a, b); i++) {
            answer += i;
        }
        return answer;
    }
}

 

Result #1

 

💡 a와 b 중 최솟값과 최댓값을 구해서 for 반복문으로 두 정수 사이를 더한다.

 

 


 

Solution #2

class Solution {
    public long solution(int a, int b) {
        if (a == b) return a;
        return (long) (Math.max(a, b) - Math.min(a, b) + 1) * (a + b) / 2;
    }
}

 

Result #2

 

💡 a와 b가 같을 경우 바로 값을 리턴시키고, 아닐 경우 등차수열의 공식을 이용하여 값을 구한다. 실행 속도가 굉장히 빠르다.

 


 

More Algorithm!

 

👇👇

 

github.com/ggujangi/ggu.programmers

 

ggujangi/ggu.programmers

프로그래머스 알고리즘, JAVA. Contribute to ggujangi/ggu.programmers development by creating an account on GitHub.

github.com

 

 

 

출처 : 프로그래머스