문제
https://school.programmers.co.kr/learn/courses/30/lessons/12938
아이디어1
산술 기하
na1+a2+⋯+an≥(a1a2…an)n1 (단, 등호는 a1=a2=⋯=an일 때만 성립)
- n개의 원소에 대해 합이 s가 되는 수 중 각 원소들의 곱이 최대가 되는 집합
- a1+a2+⋯+an=s
- a1a2…an=m
- 즉, m이 최대 M이 되기 위해선 ai=ns이 되어야 함
- 하지만 ai들은 자연수이어야 함
- q는 s를 n으로 나눴을 때의 몫
- r은 s를 n으로 나눴을 때의 나머지
- M=qn−r∗(q+1)r
- 더 자세한 내용은 생략
#include <string>
#include <vector>
using namespace std;
vector<int> solution(int n, int s) {
vector<int> answer;
if (n > s)
return { -1 };
int q = s / n;
int r = s % n;
answer = vector<int>(n - r, q);
answer.resize(n, q + 1);
return answer;
}