GitHubSeob

C++ / 프로그래머스 / 과일 장수 본문

Programmers/Level 1

C++ / 프로그래머스 / 과일 장수

GitHubSeob 2023. 6. 24.

문제

https://school.programmers.co.kr/learn/courses/30/lessons/135808

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

문제풀이

과일을 포장할때 모자르게 포장할 수 는 없다.

그리고 제한사항을 보면 최대 가격인 k는 score[idx]보다 항상 크므로 k는 무시해도 된다.

먼저 내림차순으로 sort을 이용해 정렬을 한다.

m개 만큼 담아야하므로 idx를 m-1로 두고, score 크기 보다 작으면 answer에 score[idx] * m 값을 더한다.

 

코드

#include <string>
#include <vector>
#include <algorithm>
using namespace std;

int solution(int k, int m, vector<int> score) {
    int answer(0), idx(0);
    sort(score.begin(), score.end(), greater<>());
    for (idx = m - 1; idx < score.size(); idx += m) {
        answer += (score[idx] * m);
    }
    return answer;
}