-
[프로그래머스] 최고의 집합코딩테스트 2023. 6. 4. 21:30
function solution(n, s) { if(n>s) return [-1] //자연수 n개로 이루어진 집합중에 합이 s가 되는 집합. 인데 곱했을때 제일 커야됨. 그러면 즉, 각각원소의 크기가 차이가 덜나는 경우.. let num = Math.floor(s/n) let arr = Array.from({length:n},()=>num) let sum = arr.reduce((acc,cur)=>acc+cur) let rest = s-sum //이제 rest를 하나씩 뿌리면 됨 while(rest>0){ for(let i=arr.length-1;i>=0;i--){ arr[i]+=1 rest-=1 if(rest===0){ break; } } } return arr; }
'코딩테스트' 카테고리의 다른 글
[못풀었다/프로그래머스] 단속카메라 (0) 2023.06.06 [다시풀기/단어변환] (0) 2023.06.05 [힙이용해서 풀어보기/프로그래머스] 이중우선순위큐 (0) 2023.06.04 [못풀었다/꼭다시풀기/프로그래머스] 가장 큰 정사각형찾기 (0) 2023.06.04 [못풀었다/프로그래머스] 하노이의 탑 (0) 2023.06.03