반응형
https://school.programmers.co.kr/learn/courses/30/lessons/12938
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
숫자 s를 n개의 숫자의 합으로 만들어 n개의 숫자들의 곱의 최댓값을 구하는 문제다.
s % n의 개수 만큼 1을 더해주고 곱해주면 된다. 곱이 가장 크려면 최대한 중간 값에 가깝게 나눠야 하기 때문이다. 레벨3이라 설마 이거겠어 하고 제출 했는데 진짜 이거네 ㅋㅋ..
#include <string>
#include <vector>
using namespace std;
vector<int> solution(int n, int s) {
vector<int> answer;
if (n > s)
{
answer.push_back(-1);
return answer;
}
int cnt = s / n; // 그대로 넣어줄 값
int no_plus_cnt = n - s % n; // 1씩 더해줄 개수
for (int i = 0; i < n; i++)
{
if (no_plus_cnt > 0)
{
no_plus_cnt--;
answer.push_back(cnt);
}
else
answer.push_back(cnt + 1);
}
return answer;
}
반응형
'<algorithm> > 프로그래머스' 카테고리의 다른 글
프로그래머스 귤 고르기 c++ (0) | 2023.05.29 |
---|---|
프로그래머스 오픈채팅방 c++ (0) | 2023.05.29 |
프로그래머스 멀리 뛰기 c++ (0) | 2023.05.28 |
프로그래머스 N개의 최소공배수 c++ (0) | 2023.05.28 |
프로그래머스 점프와 순간 이동 c++ (0) | 2023.05.28 |