728x90
코드 힌트:
- 불가능한 경우 처리:
- 만약 n이 s보다 크다면, n개의 숫자로 s를 나누는 것이 불가능하기 때문에 결과 배열로 {-1}을 반환합니다.
- 평균 분배:
- s를 n으로 나눈 몫을 모든 배열 요소에 기본 값으로 설정합니다.
- 이렇게 하면 각 요소가 가능한 한 균등하게 값을 가지게 됩니다.
- 나머지 분배:
- s가 n으로 정확히 나누어 떨어지지 않는 경우, 나머지를 배열의 뒤에서부터 하나씩 분배합니다.
- 이렇게 하면 배열이 내림차순으로 정렬된 상태를 유지할 수 있습니다.
정답은 더보기 클릭
더보기
import java.util.*;
class Solution {
public int[] solution(int n, int s) {
int[] result = new int[n]; // 길이가 n인 결과 배열 생성
// 주어진 s를 n개의 숫자로 나누는 것이 불가능한 경우
if (n > s) {
return new int[]{-1}; // -1을 담은 배열 반환
}
// 결과 배열의 모든 요소를 s / n의 값으로 초기화
Arrays.fill(result, s / n);
// s가 n으로 나누어 떨어지지 않는 경우
if (s % n != 0) {
int remainder = s % n; // 나머지를 계산
// 나머지를 결과 배열의 뒤에서부터 하나씩 분배
for (int i = n-1; remainder > 0; i--) {
result[i]++; // 각 요소에 1씩 더해줌
remainder--; // 나머지 감소
}
}
return result; // 결과 배열 반환
}
}
728x90
'프로그래머스(Java) > Level 3' 카테고리의 다른 글
[프로그래머스] 기지국 설치 (1) | 2024.09.13 |
---|---|
[프로그래머스] 단속카메라 (0) | 2024.09.05 |
[프로그래머스] 숫자 게임 (0) | 2024.09.03 |
[프로그래머스] 베스트앨범 (1) | 2024.09.02 |
[프로그래머스] 등굣길 (0) | 2024.08.22 |