풀이

홀수 짝수로 나눠서 열심히 수학 풀었는데 더 간편한 공식과 방법이 있었다.

public long solution(int a, int b) {
        if (a == b) return a;
        int cnt = Math.abs(b - a) + 1;
        if (cnt % 2 == 0) return (a + b) * (cnt / 2);
        else return (a + b) * (cnt / 2) + ((a + b) / 2);

    }

 

다른 풀이

for문으로 하나씩 더해서 리턴

for문 조건에 삼항사용

class Solution {
  public long solution(int a, int b) {
      long answer = 0;
      for (int i = ((a < b) ? a : b); i <= ((a < b) ? b : a); 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;
    }
}

+ Recent posts