본문 바로가기

알고리즘/Programmers

[Programmers] Level1. 두 정수 사이의 합 (Java)

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. (큰수 + 작은수) * (큰수 - 작은수+1) /2 는 정답이 된다.
  3. int형으로 값을 담을경우 정답처리 되지않으므로 long 타입으로 변환하여 주여야한다.