Level1. 두 정수 사이의 합
문제설명 )
풀이Code )
class Solution {
public long solution(long a, long b) {
long answer = 0;
if (a == b) {
answer = a;
}
else if (a > b) {
answer = ((a+b) * (a-b+1))/2;
}
else {
answer = ((b+a) * (b-a+1))/2;
}
return answer;
}
}
풀이법 )
- 규칙이 존재한다.
- (큰수 + 작은수) * (큰수 - 작은수+1) /2 는 정답이 된다.
- int형으로 값을 담을경우 정답처리 되지않으므로 long 타입으로 변환하여 주여야한다.
'알고리즘 > Programmers' 카테고리의 다른 글
[Programmers] Level1. 문자열 내 p와 y의 개수 (Java) (0) | 2021.01.16 |
---|---|
[Programmers] Level1. 문자열 내마음대로 정렬하기 (Java) (0) | 2021.01.16 |
[Programmers] Level1. 나누어 떨어지는 숫자 배열 (Java) (0) | 2021.01.11 |
[Programmers] Level1. 같은 숫자는 싫어 (Java) (0) | 2021.01.05 |
[Programmers] Level1. 가운데 글자 가져오기 (Java) (0) | 2021.01.03 |