본문 바로가기
Algorithm Study/Programmers (JAVA)

프로그래머스 Lv3_최고의 집합_Java

by 창브로 2024. 6. 27.
728x90

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

import java.util.*;

class Solution {
    public int[] solution(int n, int s) {
        int[] answer = new int[n];
        
        if (n > s) {
            return new int[]{-1};
        }
        
        int share = s / n;
        int remain = s % n;
        
        for (int i = 0; i < n; i++) {
            answer[i] = share;
        }
        
        for (int i = 0; i < remain; i++) {
            answer[n - 1 - i] += 1;
        }
        
        return answer;
    }
}

 

풀이

- s를 n으로 나눴을때 나머지가 없으면 몫으로 answer 배열을 채워서 return 

- s가 n보다 작으면 구현할 수 없으므로 -1 return

- 나머지가 있으면 몫으로 answer배열을 채우고 나머지를 뒤에서부터 1씩 더해준다 (오름차순이니까)

 

회고

- 괜찮은 문제였다

- 30분쯤 걸린 것 같다