오늘은 문제의 해결 방법을 생각하는 데 시간을 조금 소요했다. 하지만 a와 b를 더한 수에 a - b + 1 혹은 b - a + 1 만큼 곱한 뒤, 2로 나누면 된다는 것을 생각해낼 수 있었다.
public class Solution {
public long solution(int a, int b) {
long answer = 0;
int diff = 0;
if(a <= b) diff = b - a + 1;
else diff = a - b + 1;
answer = (a + b) * diff / 2;
return answer;
}
}
위와 같이 풀어서 제출을 해보았지만 틀렸다. 암만 이유를 생각해도 못 찾겠어서 골머리를 앓던 중, 멍청하게도 diff의 데이터 타입을 int로 했다는 것을 깨닫고 수정했더니 문제를 해결할 수 있었다.
public class Solution {
public long solution(int a, int b) {
long answer = 0;
long diff = 0;
if(a <= b) diff = b - a + 1;
else diff = a - b + 1;
answer = (a + b) * diff / 2;
return answer;
}
}