본문 바로가기

프로그래머스(Java)/Level 1

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

728x90
  1. 변수 초기화:
    • result: 최종 합계를 저장하는 변수로 초기 값은 0입니다.
    • start와 end: 시작 값과 끝 값을 저장하는 변수로, 초기 값은 0입니다.
  2. 시작 값과 끝 값 설정:
    • a와 b의 크기를 비교하여, 더 작은 값을 start로, 더 큰 값을 end로 설정합니다.
    • 이를 통해 항상 작은 값부터 큰 값까지의 합을 구할 수 있습니다.
  3. for 루프를 통한 합산:
    • start부터 end까지 모든 정수를 순회하며 result에 더합니다.
  4. 결과 반환:
    • 최종 합계를 result에 저장하고 반환합니다.

추가 힌트:

  • 삼항 연산자를 사용하면 코드를 더 간결하게 만들 수 있습니다:
int start = a < b ? a : b;
int end = a > b ? a : b;
  • Math를 활용하면 삼항 연산자를 사용하지 않고 더욱 더 간결하게 만들 수 있습니다:
Math.min(a,b);
Math.max(a,b);
  • 더 효율적인 방법으로 등차수열의 합 공식을 사용할 수 있습니다:
(max - min + 1) * (min + max) / 2;

 

 


정답은 더보기 클릭

더보기

1. 기본적인 문법으로 문제 풀기

class Solution {
    public long solution(int a, int b) {
        long result = 0; // 합계를 저장할 변수
        
        int start = 0; // 시작 값
        int end = 0; // 끝 값
        
        // a와 b의 크기를 비교하여 start와 end 값을 설정
        if (a > b) {
            start = b;
            end = a;
        } else {
            start = a;
            end = b;
        }
        
        // start부터 end까지의 모든 수를 합산
        for (int i = start; i <= end; i++) {
            result += i;
        }
        
        return result; // 최종 합계를 반환
    }
}

 

2. Math, 등차수열을 이용하여 문제 풀기

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

 

728x90