두 정수 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
출처 : 프로그래머스
'프로그래머스 - JAVA > Level 1' 카테고리의 다른 글
[JAVA] 프로그래머스 Lv.1 : 3진법 뒤집기 (0) | 2021.04.04 |
---|---|
[JAVA] 프로그래머스 Lv.1 : 나누어 떨어지는 숫자 배열 (0) | 2021.04.04 |
[JAVA] 프로그래머스 Lv.1 : 문자열 내 마음대로 정렬하기 (0) | 2021.04.04 |
[JAVA] 프로그래머스 Lv.1 : 문자열 내림차순으로 배치하기 (0) | 2021.04.03 |
[JAVA] 프로그래머스 Lv.1 : 서울에서 김서방 찾기 (0) | 2021.04.03 |