TIL | [알고리즘] 두 정수 사이의 합(Java)

hyemin·2022년 3월 11일
0

알고리즘

목록 보기
4/38
post-thumbnail

THINKING

  1. a<b, a>b, a=b 세가지 경우로 나뉜다 - if - else if - else
  2. for문을 사용해보자
    • a < b : b까지 a에 1씩 더하자 for(int i = a; i <= b; i++)
    • a > b : a까지 b에 1씩 더하자 for(int i = b; i <= a; i++)
    • a = b : a를 출력하자

내 풀이

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

Math.min(), Math.max() 로 대소비교를 해 sumAtoB 함수 인자에 넣어주고 sumAtoB에서 등차수열 공식 을 활용한 풀이

배운 것

Math.max(), Math.min()

Math.max() 함수는 인자 중 큰 값을 리턴, Math.min() 함수는 인자 중 작은 값을 리턴한다.

사용법

System.out.println(Math.max(17, 1);
System.out.println(Math.min(2.4, 4.9);
17
2.4

0개의 댓글