두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요.
예를 들어 a = 3, b = 5인 경우, 3 + 4 + 5 = 12이므로 12를 리턴합니다.
a | b | return |
---|---|---|
3 | 5 | 12 |
3 | 3 | 3 |
5 | 3 | 12 |
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;
}
}
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;
}
}
등차수열
- 첫째항에 일정한 수를 더해서 얻어진 항으로 이루어진 수열.
aₙ = aₙ₋₁ + d
공차
- 각 항에 더해지는 일정한 수.
d = aₙ - aₙ₋₁
등차수열의 일반항 구하기
- 첫째항이 a, 등차가 d인 등차수열의 일반항.aₙ = a + (n-1)d
(단, n은 자연수)
등차수열의 합
= (양 끝 항의 산술평균) * (항의 개수)
우와아,,,난 이번에 문제 풀면서 나름 min, max() 메서드 생각나서 옳다구나! 하고 샤샤샥 풀었는데 등차수열의 합 공식을 이용하면 이렇게 금방 풀리는 거였다...!!!
심지어 메서드를 따로 정의해서 활용하는 것 까지ㅠㅠㅠ완벽ㅠㅠㅠㅠㅠ
매번 여러사람들의 풀이를 보며 참 여러가지를 느끼는듯ㅎㅎㅎㅎ
간만에 학교다닐 때 배웠던 등차수열에 대해서 공부했는데 어쩐지 자주 쓰일 것 같아서 공식을 따로 정리해봤다! 자주 보면서 머릿속에 넣어야지~~😊