반응형
https://programmers.co.kr/learn/courses/30/lessons/12938
수학 문제였습니다.
풀이방법
1. 몫이 0이라면 -1을 담아 반환합니다. 그 외에 가장 곱이 크기 위해서는 s/n값이 n개 있을 때 입니다. 따라서 s/n값을 n개 가지고 있는 vector ans를 선언합니다.
2. ans의 끝부터 끝 - s%n 으로 오면서 나머지를 1씩 배분해줍니다.
3. 정답을 반환합니다.
Code
#include <bits/stdc++.h>
using namespace std;
vector<int> solution(int n, int s) {
int start = s/n;
int margin = s % n;
if(start == 0) return {-1};
vector<int> answer(n,start);
for(int i = n - 1; i > n - 1 - margin; i--){
answer[i]++;
}
return answer;
}
'Algorithm > Math' 카테고리의 다른 글
(Python) - 백준(BOJ) 16428번 : A/B - 3 (0) | 2021.05.27 |
---|---|
(C++) - 프로그래머스(연습문제) : 줄 서는 방법 (0) | 2021.05.21 |
(C++) - 프로그래머스(2017 팁스타운) : 예상 대진표 (0) | 2021.05.17 |
(C++) - 프로그래머스(Summer/Winter Coding(~2018)) : 점프와 순간이동 (0) | 2021.05.16 |
(C++) - 백준(BOJ) 2407번 : 조합 (3) | 2021.05.02 |