C++/programmers 코딩테스트(level 3) C++

[C/C++] programmers Level 3 최고의 집합

CE : 하랑 2023. 10. 19. 13:45

 

 

 

코드

 

#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;
}