Lee's Grow up

[자바/알고리즘] 프로그래머스 두 정수 사이의 합 본문

알고리즘/프로그래머스

[자바/알고리즘] 프로그래머스 두 정수 사이의 합

효기로그 2019. 12. 10. 17:11
반응형

문제 설명


두 정수 a, b 가 주어졌을 때 ab 사이에 속한 모든 정수의 합을 리턴하는 함수, solution을 완성하세요.
예를 들어 a = 3, b = 5 인 경우, 3 + 4 + 5 = 12 이므로 12를 리턴합니다.

제한 조건


  • a와 b가 같은 경우는 둘 중 아무 수나 리턴하세요.
  • a와 b는 -10,000,000 이상 10,000,000 이하인 정수입니다.
  • a와 b의 대소관계는 정해져있지 않습니다.

입출력 예


abreturn
3512
333
5312

나의 풀이


class Solution {
  public long solution(int a, int b) {
      long answer = 0;
      int maxNum = (a >= b ? a : b);
      int minNum = (a <=b ? a : b);

      for(int i = minNum ; i <= maxNum; i++){
          answer+= i;
      }
      return answer;
  }
}
풀이 설명

대학교 시절 한참 삼항 연산자를 배울때 풀었던 문제인지라, 삼항 연산자를 통해 최대 값과 최소값을 구해 누계를 하는 방식으로 풀었던거 같다.
다른 사람들은 Math.min(), 함수와 Math.max()함수를 통해 최대값, 최소값을 구하고, 값 누계 부분은 등차수열의 합 공식을 사용해 `(b - a + 1 ) * ( a - b ) / 2; 값을 리턴한 사람들도 많았다.
역시 프로그래밍의 연산 최적화랑 수학은 밀접한 관계가 있는거 같다.

반응형
Comments