[프로그래머스] 최고의 집합(12938)

lhs's avatar
Dec 06, 2024
[프로그래머스] 최고의 집합(12938)
 

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. 정리

  • ns보다 클 경우, 최고의 집합을 만들 수 없으므로 1을 반환한다.
  • 크기 nanswer 배열을 정의한 뒤, 마지막 인덱스부터 첫 번째 인덱스까지 순회하며 s / n 값을 채우고, 나머지(s % n)만큼 1씩 더해 배열에 저장하여 문제를 해결한다.
Share article

LHS's Study Space