코드
#include <vector>
using namespace std;
vector<int> solution(int n, int s) {
if(n>s){ // 자연수 n개를 가지고는 합이 s인 집합을 만들 수 없는 경우
return {-1};
}
// 곱이 최대한인 집합을 만드는 문제 이기 때문에 집합의 요소들이 균등해야 합니다.
vector<int> answer(n,s/n); // s/n을 통해 균등하데 값을 넣음
int num=s%n; // 나머지값
for(int i=n-1;num>0;i--){ // 값은 오른차순 정렬이기에 뒤에서부터 나머지 값을 더해주며 균등하게 만듬
answer[i]++;
num--;
}
return answer;
}
'C++ > programmers 코딩테스트(level 3) C++' 카테고리의 다른 글
[C/C++] programmers Level 3 단속카메라 (복습) (0) | 2023.11.08 |
---|---|
[C/C++] programmers Level 3 숫자 게임 (0) | 2023.10.31 |
[C/C++] programmers Level 3 야근 지수 (2) | 2023.10.28 |
[C/C++] programmers Level 3 정수 삼각형 - 참고 (0) | 2023.10.27 |
[C/C++] programmers Level 3 이중우선순위큐 (0) | 2023.10.18 |