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

김준영·2023년 3월 11일
0

코딩테스트

목록 보기
6/22

문제


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

https://school.programmers.co.kr/learn/courses/30/lessons/120923

내 풀이


import java.util.*;
class Solution {
    public int[] solution(int num, int total) {
        int[] answer = {};
        boolean right = true;
        int center = total/num;
        List<Integer> check = new ArrayList<>();
        check.add(center);

        for(int i = 1; i <= num; i++){
            if(right && check.size() < num){
                check.add(center + i);
                right = false;
            }
            if(!right && check.size() < num){
                check.add(center - i);
                right = true;
            }
        }

        return check.stream().sorted().mapToInt(i -> i).toArray();
    }
}
  1. 총 값을 총 갯수로 나누면 중간 값이 나온다.
  2. 반복문을 통해 총 갯수가 넘지 않게 중간 값 기준으로 붙인다.
  3. 리스트 정렬 후 배열로 변환 후 반환.
profile
ㅎㅎ

0개의 댓글