풀이
홀수 짝수로 나눠서 열심히 수학 풀었는데 더 간편한 공식과 방법이 있었다.
public long solution(int a, int b) {
if (a == b) return a;
int cnt = Math.abs(b - a) + 1;
if (cnt % 2 == 0) return (a + b) * (cnt / 2);
else return (a + b) * (cnt / 2) + ((a + b) / 2);
}
다른 풀이
for문으로 하나씩 더해서 리턴
for문 조건에 삼항사용
class Solution {
public long solution(int a, int b) {
long answer = 0;
for (int i = ((a < b) ? a : b); i <= ((a < b) ? b : a); i++)
answer += i;
return answer;
}
}
등차수열의 합 공식 사용
class Solution {
public long solution(int a, int b) {
return sumAtoB(Math.min(a, b), Math.max(b, a));
}
private long sumAtoB(long a, long b) {
return (b - a + 1) * (a + b) / 2;
}
}
'algorithm > 프로그래머스' 카테고리의 다른 글
프로그래머스 - 핸드폰 번호 가리기 JAVA (0) | 2022.09.29 |
---|---|
프로그래머스 - 서울에서 김서방 찾기 JAVA (0) | 2022.09.29 |
프로그래머스 - 콜라츠 추측 JAVA (0) | 2022.09.29 |
프로그래머스 - x만큼 간격이 있는 n개의 숫자 JAVA (0) | 2022.09.22 |
프로그래머스 - 정수 내림차순으로 배치하기 JAVA (0) | 2022.09.22 |