본문 바로가기
개발일지/코딩테스트

[Programmers] 최고의 집합 (c++)

by 쫌눈 2025. 3. 11.
728x90
반응형

https://school.programmers.co.kr/learn/courses/30/lessons/12938

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

N개의 합이 S인 원소집합 중 각 원소의 곱이 제일 큰 수를 찾는 것이다.

4, 16 =>  4,4,4,4

4, 17 => 4,4,4,5

4, 18 => 4,4,5,5

4, 19 => 4,5,5,5

4, 20 => 5,5,5,5

S%N의 개수만큼 원소에 1을 더하면 된다.

기본값은 S/N이다.

vector<int> solution(int n, int s) {
	vector<int> answer;

	int mid = s / n;
	int l = s % n;
	if (mid <= 0)
	{
		answer.emplace_back(-1);
		return answer;
	}
	for (int i = 0; i < n; i++)
	{
		answer.emplace_back(mid);
	}
	for (int i = 0; i < l; i++)
	{
		answer[i] += 1;
	}

	sort(answer.begin(), answer.end());

	return answer;
}
728x90
반응형

'개발일지 > 코딩테스트' 카테고리의 다른 글

[Programmers] 약수의 합(c++)  (0) 2025.03.28
[Programmers] 안전지대 (c++)  (0) 2025.03.17
[Programmers] 하샤드 수(c++)  (0) 2025.03.06
[Programmers] 기지국 설치(c++)  (0) 2025.03.04
[Programmers] 삼총사 (c++)  (0) 2025.02.17