[프로그래머스 스쿨] 코딩테스트 연습 기초 - 두 정수 사이의 합

김현정·2025년 3월 7일
0

문제 설명

두 정수 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의 대소관계는 정해져있지 않습니다.

입출력 예 설명

기본 코드

class Solution {
    public long solution(int a, int b) {
        long answer = 0;
        return answer;
    }
}

내가 구현한 코드

class Solution {
    public long solution(int a, int b) {
        long answer = 0;
        if (b > a) {
            for(int i = a; i <= b; i++) {
                answer += i;
            }
        } else {
            for(int i = b; i <= a; i++) {
                answer += i;
            }
        }
        return answer;
    }
}

다른사람이 구현한 코드

class Solution {
  public long solution(int a, int b) {
      long answer = 0;

        int start = Math.min(a, b);
        int end = Math.max(a, b);

        for (int i = start; i <= end; i++) {
            answer += i;
        }

        return answer;
  }
}

문제 해결

a, b 매개변수가 a가 작고 b가 큰 수가 오는 것이 아닌 무작위로 배치를 하기에 for문을 하나만 사용할 수 없었습니다. 그렇기에 if문을 사용하여 a가 b보다 작으면 for문으로 합을 다 구하고 else를 이용해서 for문으로 합을 반환하였습니다.

개선사항

  1. Max, Min으로 사용하여 크기를 구분하면 if문을 사용안해도 for문 하나로 가능함
  2. 등차수열 부분 사용할 수도 있음.

알게된 점

0개의 댓글