prgms.12912 - 두 정수 사이의 합
이 문제는 매우매우 쉬운 문제라고 생각했다. 그리고 실제로 그랬다. 하지만 다른 사람의 풀이를 보고 또 한번 반성을 했다.
나의 풀이
class Solution {
public long solution(int a, int b) {
long answer = 0;
int min = Math.min(a, b);
int max = Math.max(a, b);
for (int i = min; i <= max; i++) {
answer += i;
}
return answer;
}
}
다른 사람의 풀이
반복문으로 더하는 것이 아닌 등차수열의 합 공식을 적용한 것이다. 가우스가 초딩 때 유도했던 바로 그 공식말이다! 정규교과과정은 어디까지 나의 발목을 잡을 것인가..
class Solution {
public long solution(int a, int b) {
return sumSequence(Math.min(a, b), Math.max(b, a));
}
private long sumSequence(long a, long b) {
return (b - a + 1) * (a + b) / 2; // n(a+l)/2
}
}