728x90
문제 내용, 조건, 예시는 프로그래머스 사이트 참조
사과박스의 가격은 박스에 들어가 있는 사과 중 최하품 사과 가격으로 정해진다.
그렇기 때문에 가격이 높은 것끼리 박스에 포장으로 하는 것이 가격을 가장 높게 받는 방법이다.
· 사과가 저장되어 있는 "vector<int> score"를 내림차순으로 정렬
· m개씩 사과를 포장했을 때, index가 큰 것이 가장 낮은 가격이 됨
[4, 1, 2, 2, 4, 4, 4, 4, 1, 2, 4, 2]를 내림차순으로 정렬을 하면
index [2, 5, 8, 11]의 가격을 m과 곱한 값을 모두 더하면 최대 이익을 만들 수 있다.
※ 조건 중 고려할 사항
- 사과 박스에 m개 미만의 사과가 들어가면 안 됨
- k 매개변수는 사용되지 않음
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | #include <string> #include <vector> #include <algorithm> // sort, greater<> 사용 using namespace std; int solution(int k, int m, vector<int> score) { int answer = 0; int index = m - 1; // index가 0부터 시작하기 때문에 -1을 해줌 unsigned int score_size = score.size(); // 내림차순 정렬 sort(score.begin(), score.end(), greater<int>()); while(true) { // 박스에 m개를 채울 수 없으면 종료 if(index > score_size) { break; } answer += (score[index] * m); index += m; } return answer; } | cs |
↓↓↓↓↓↓ 유익했다면 하트 뿅 ♥ ↓↓↓↓↓↓
728x90
반응형
'프로그래밍 > 프로그래머스' 카테고리의 다른 글
Lv1_[푸드 파이트, C++] 알고리즘 정리 및 풀이 - 프로그래머스 (0) | 2022.11.16 |
---|---|
Lv1_[숫자 짝꿍, C++] 알고리즘 정리 - 프로그래머스 (0) | 2022.11.15 |
Lv1_[성격유형 검사하기, C++] 알고리즘 정리 - 프로그래머스 (0) | 2022.11.10 |
Lv1_[신고결과 받기, C++] 알고리즘 정리 - 프로그래머스 (0) | 2022.11.08 |
Lv1_[부족한 금액 계산하기, C++] 알고리즘 정리 - 프로그래머스 (0) | 2022.11.08 |
댓글