자바 알고리즘 문제

연속된 수의 합

쿠키키키키 2024. 4. 6. 17:01

연속된 세 개의 정수를 더해 12가 되는 경우는 3, 4, 5입니다. 두 정수 num과 total이 주어집니다. 연속된 수 num개를 더한 값이 total이 될 때, 정수 배열을 오름차순으로 담아 return하도록 solution함수를 완성해보세요.

class Solution {
    public int[] solution(int num, int total) {
        int[] answer =new int[num];
        //가장 첫번쨰 원소를 구하면 쉽게 구해질듯
        //계산한 결과 total = x*num+ (1~ num-1 까지의 합) 이걸 충족 시키는
        //x 의 값이 첫번쨰 원소임
        // 결국 x = (total-(1~num-1까지의 합)) / num 임
        int x=0;
        int a=0; // 1~num-1까지의 합

        for(int i=0; i<num;i++){
            a+=i;
        }

        x=(total-a)/num;

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

        return answer;
    }
}

 

음 풀이는 주석에 적은 내용이 끝이긴하다. 

가장 첫번째 원소를 구하는게 관건인걸로 풀이를 했다. !

첫번째 원소를 구했다면 그때부터는 for 문 을 통해 1씩 커지는 답변 배열을 만들면 끝이다. 

'자바 알고리즘 문제' 카테고리의 다른 글

안전지대  (0) 2024.04.09
분수의 덧셈  (0) 2024.04.08
다음에 올 숫자  (0) 2024.04.06
OX 퀴즈  (0) 2024.04.05
종이 자르기  (0) 2024.04.04