[프로그래머스] 두 정수 사이의 합-JAVA

말하는 감자·2022년 6월 28일
0

Programmers Level 1

목록 보기
26/66
post-thumbnail

프로그래머스 Level 1

🔒 문자열 내 마음대로 정렬하기

📚 문제 설명

두 정수 a, b가 주어졌을 때 a와 b 사이에 속한 모든 정수의 합을 리턴하는 함수, 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;
        
        if(a > b) {
            int temp = a;
            a = b;
            b = temp;
        }
        
        for(int i=a; i<=b; i++){
            answer += i;
        }
        
        return answer;
    }
}

먼저 ab의 대소를 비교하여 작은 수를 a, 큰 수를 b로 둔다.

그다음 for문을 돌려 a부터 b까지의 수를 answer에 더한다.


🔓 다른 사람의 코드

class Solution {
    public long solution(int a, int b) {
        int min = Math.min(a, b);
        int max = Math.max(b, a);
        
        return (max - min + 1) * (min + max) / 2;
    }
}

Math.min()Math.max()를 이용하여 최소최대값을 구하고 등차수열의 합 공식을 이용해 푼 방법이다.


🔍 등차수열 합공식

a1 + a2 + ··· + an = 1/2 X 항의 수 X (첫항 + 끝항) = 1/2 X n X (a1 + an)

코드에 대입해보면 a1은 min이고 an이 max이다.
항수 n은 max - min + 1을 함으로써 구했다.


😂 느낀 점

수학수학수학~!!!!!
네버엔딩 수학!!!!!!

profile
나는 말하는 감자다

0개의 댓글