Contents

연속된 수의 합 (with.Java)

   May 28, 2024     1 min read

“연속된 수의 합 (with.Java)” 문제에 대하여 알아본 글입니다.

코딩 테스트 문제를 풀며, 풀었던 문제에 대한 회고와 다른 풀이 방법을 알아보며, 알아가고자 합니다.

문제에 대해 먼저 알아보겠습니다.

문제

연속된 세 개의 정수를 더해 12가 되는 경우는 3, 4, 5입니다.

두 정수 num과 total이 주어집니다.

연속된 수 num개를 더한 값이 total이 될 때, 정수 배열을 오름차순으로 담아 return하도록 solution함수를 완성해보세요.

제한사항

  • 1 ≤ num ≤ 100
  • 0 ≤ total ≤ 1000
  • num개의 연속된 수를 더하여 total이 될 수 없는 테스트 케이스는 없습니다.

입출력 예시

numtotalresult
312[3, 4, 5]
515[1, 2, 3, 4, 5]
414[2, 3, 4, 5]
55[-1, 0, 1, 2, 3]

문제에 대한 나의 풀이

class Solution {
    public int[] solution(int num, int total) {
        int[] answer = new int[num];
        int startNum = total / num - (num - 1) / 2;

        for(int i = 0; i < num; i++){
            answer[i] = startNum++;
        }
        return answer;
    }
}

풀이 리뷰

시작 숫자와 총 숫자의 합계가 주어졌을 때, 시작 숫자부터 시작하여 일정한 간격으로 숫자를 생성하는 함수입니다.

solution 함수는 num과 total 두 개의 매개변수를 받습니다.

먼저, 결과를 저장할 배열 answer를 생성합니다. 이 배열의 길이는 num으로 설정됩니다.

시작 숫자를 계산하기 위해 startNum 변수를 초기화합니다. 이 값은 주어진 총 숫자를 주어진 숫자로 나눈 후, 그 값에서 (숫자의 개수 - 1) / 2를 뺀 것입니다. 이렇게 함으로써 숫자를 일정한 간격으로 생성할 수 있습니다.

반복문을 사용하여 각 요소에 시작 숫자부터 시작하여 일정한 간격으로 증가하는 값을 할당합니다. 결과 배열 answer를 반환합니다.