알고리즘

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

Heidong 2022. 6. 11. 14:59
반응형

 

내 풀이

package algorithm_Lv01;

public class P_27 {

	public long solution(int a, int b) {
        long answer = a;
        int c = 0;
        
        if(a == b) {
        	return a;
        } else {
        	if(a > b) { 
        		c = a; // 큰수 
        		a = b; // a가 작은수
        		b = c; // b에 큰수
        		answer = a;
        	}
        }
        
        for(int i=a; i<b; i++) { 
        	answer += i+1;
        }
        
        return answer;
    }
	
	public static void main(String[] args) {
		// 두 정수 사이의 합
		P_27 p = new P_27();
		
		int a = 5;
		int b = 3;
		
		System.out.println(p.solution(a, b));
	}

}

a가 작은수 일경우는 간단하지만

a가 더 큰 수 일 경우 a와 b의 값 치환을 했다.

Math 함수의 min(), max() 함수를 이용한다면 더 간단하게 표현이 가능하다.

 

다른 사람 풀이

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;
    }
}

등차수열의 합을 이용한 풀이 방식

 

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=junhyuk7272&logNo=221247061276 

 

3. 등차수열의 합

3. 등차수열의 합  (1) 기본적인 공식 도출 등차수열의 합공식은 가우스가 초등학교 때 만들었습니다. 1부...

blog.naver.com

 

 

반응형