[Programmers / Level 3] 12938. 최고의 집합 (Java)

이하얀·2025년 3월 30일
0

🕊️ 프로그래머스

목록 보기
110/115

💡 Info




입출력 조건




입출력 예시




문제 이해


  • 집합의 원소의 개수 n과 모든 원소들의 합 s가 매개변수로 주어질 때, 최적의 집합을 찾아야 하는 문제


알고리즘


풀이 시간 : 28분

  • n개 숫자의 합이 s가 되도록 균등 분배
    • 각 원소에 s/n을 할당
    • 나머지(s % n) 만큼 추가 배분
  • 오름차순 정렬
    • 작은 값들을 유지 -> 배열 끝에서부터 1씩 추가
import java.util.*;

class Solution {
    public int[] solution(int n, int s) {
        if (n > s) return new int[]{-1};

        int base = s / n;
        int mod = s % n;

        int[] answer = new int[n];
        Arrays.fill(answer, base);

        for (int i = n - mod; i < n; i++) {
            answer[i]++;
        }

        return answer;
    }
}


결과

profile
언젠가 내 코드로 세상에 기여할 수 있도록, Data Science&BE 개발 기록 노트☘️

0개의 댓글