-
[CodeKata] 프로그래머스(Lv3) : 최고의 집합Algorithm 2022. 3. 12. 06:08반응형
🥋 Oooth More!! (Level 3)
🧮 풀이
function solution(n, s) { if (n > s) return [-1] const num = Math.floor(s/n); const count = s % n; return [...new Array(n-count).fill(num), ...new Array(count).fill(num+1)] }
- s가 n보다 작다면 제일 작은 자연수인 1들의 합으로 s가 나올 수 없다. 이 때는, [-1] 을 반환한다.
- num은 각 원소의 곱이 최대가 되는 원소값 중 작은값이다. n = 2, s = 9 일 때, [4,5] 에서 4에 해당하는 것이다.
- count는 최고의 집합에서, num+1 의 개수이다. s를 n으로 나눈 나머지 수만큼 num들에 1을 더하면 된다. (최고의 집합은 num, num+1 들로 이루어져야 곱이 최대가 될 수 있다.)
- num을 (n - count) 개, num+1은 count 개를 포함한 배열을 최종 반환한다.
🖇 리뷰
단순하게 s를 최대한 n등분한 숫자들의 배열이 정답이 될거라 생각했고 이 풀이가 맞게 되었다.
반응형'Algorithm' 카테고리의 다른 글
[CodeKata] 프로그래머스(Lv3) : N-Queen (0) 2022.03.26 [CodeKata] 프로그래머스(Lv3) : 하노이의 탑 (0) 2022.03.20 [CodeKata] 프로그래머스(Lv3) : 줄 서는 방법 (0) 2022.03.06 [CodeKata] 프로그래머스(Lv3) : 야근 지수 (0) 2022.02.27 [CodeKata] 프로그래머스(Lv3) : 멀리 뛰기 (0) 2022.02.19