컴굥일지
[Programmers/프로그래머스 lv3][C++] 최고의 집합 본문
반응형
문제
https://school.programmers.co.kr/learn/courses/30/lessons/12938
문제 내용
n개의 숫자를 더하여 s를 만든다.
이때 해당 n개의 숫자의 곱이 가장 큰 경우를 구하면 된다.
문제 풀이
중복이 허용되기 때문에 그렇게 어렵지는 않다.
모든 값이 중앙에 몰려있어야 곱했을 때 가장 크게 나오기 때문에, s를 n으로 나눈 값을 기본하면 된다.
나머지가 발생한 경우, 크기 만큼 +1을 해주면 된다.
코드
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
vector<int> solution(int n, int s) {
int num=s/n;
if(num == 0) return {-1};
vector<int> answer(n, num);
for(int i=0;i<s%n;i++){
answer[i]++;
}
sort(answer.begin(), answer.end());
return answer;
}
반응형
'알고리즘 > 코테 문제' 카테고리의 다른 글
[BOJ/백준 1717][C++] 집합의 표현 (1) | 2023.09.06 |
---|---|
[Programmers/프로그래머스 lv1][C++] 로또의 최고 순위와 최저 순위 (0) | 2023.08.27 |
[BOJ/백준 7662][C++] 이중 우선순위 큐 (0) | 2023.08.25 |
[Programmers/프로그래머스 lv2][C++] 전력망을 둘로 나누기 (0) | 2023.08.25 |
[Programmers/프로그래머스 lv3][C++] 퍼즐 조각 채우기 (0) | 2023.08.24 |
Comments