#include <string>
#include <vector>
using namespace std;
vector<int> solution(int n, int s)
{
int num = s / n;
//나눌 수 없다면
if(num == 0)
{
return vector<int>(1, -1);
}
vector<int> answer(n, num);
int extraPlus = s % n;
//추가분을 더해준다. n=4, s=14일 경우 끝에서 부터 1씩더해주어 3344이다.
while(extraPlus > 0)
{
answer[answer.size() - extraPlus]++;
extraPlus--;
}
return answer;
}
풀이
1. 평균 값을 최대한 곱해주는 것이 최고의 곱이 된다.
2. s / n가 자연수의 최소 값이고 나머지가 있다면 1씩 나눠서 vector의 끝부터 넣어준다.
느낀점
수학적 공식같은 것이 있을 것 같은 문제는 빠르게 캐치해내는 것이 좋은 방법인듯하다.
https://school.programmers.co.kr/learn/courses/30/lessons/12938
'Algorithm > Programmers' 카테고리의 다른 글
[C++] 프로그래머스 징검다리건너기 (0) | 2024.03.19 |
---|---|
[C++] 프로그래머스 숫자게임 (0) | 2024.03.05 |
[C++] 프로그래머스 야근 지수 (0) | 2024.02.29 |
[C++] 프로그래머스 숫자의 표현 (0) | 2024.02.16 |
[C++] 프로그래머스 [PCCP 기출문제] 2번 / 석유 시추 (0) | 2024.02.16 |