1. 문제 풀이 아이디어
- 수학적인 계산을 통해 문제를 해결할 수 있다.
2. 나의 정답 코드
class Solution {
public int[] solution(int n, int s) {
if (n > s)
return new int[]{-1};
int[] answer = new int[n];
int rem = s % n;
int div = s / n;
for (int i = n - 1; i >= 0; i--) {
answer[i] = div + (rem-- > 0 ? 1 : 0);
}
return answer;
}
}
3. 정리
n
이s
보다 클 경우, 최고의 집합을 만들 수 없으므로1
을 반환한다.
- 크기
n
인answer
배열을 정의한 뒤, 마지막 인덱스부터 첫 번째 인덱스까지 순회하며s / n
값을 채우고, 나머지(s % n
)만큼 1씩 더해 배열에 저장하여 문제를 해결한다.
Share article