[프로그래머스] 연속된 수의 합 - JAVA

2023. 4. 23. 19:20프로그래머스 - JAVA

문제 설명

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

 

제한사항

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

 

코드

import java.util.ArrayList;
import java.util.Comparator;


class Solution {
    public ArrayList<Integer> solution(int num, int total) {
        
      ArrayList<Integer> arr = new ArrayList<>();
        int ck = total/num;
        int cknum = num/2+1;
        arr.add(ck);
        for(int i = 1;i<cknum;i++){
            if(num%2==0){
                if(i==cknum-1){
                arr.add(ck+i);
                }
                else{
                arr.add(ck+i);
                arr.add(ck-i);
                }
            }   
            else{
                arr.add(ck+i);
                arr.add(ck-i);
            }
        }         
        arr.sort(Comparator.naturalOrder());
        return arr;
        
    }
}

 

 

 

 

 

 

출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges