아휴~~~ 날이 참 덥습니다. 분명 몇 주 전만 하더라도 흠,, 쪼금은 저녁에 추울지도?! 라는 기분이었습니다만,
지금은 시도 때도 없이 더운 기분입니다!
아직 5월초인데 벌써부터 이정도의 더위력이면.....진짜 여름이 왔을때 전 어떻게 해야할까요!!!! 넘 더워!!
이 뜨거운 기분과 함께, 문제 보시죠!
옛날의 제가 풀었던 코드를 보는것도 생각보다 재밌는 부분인 것 같습니다!
예전의 저와 지금의 제가 어떤식으로 다르게 풀었는지 짚는 부분이 흥미롭달까요.
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
bool cmp(int a, int b) {
return a > b;
}
int solution(int k, int m, vector<int> score) {
int answer = 0;
sort(score.begin(), score.end(), cmp);
int num = score.size();
int i = 1;
while (num >= m) {
answer += score[m * i - 1] * m;
num -= m;
i++;
}
return answer;
}
아... 과연! 놀랍군요! 예전의 저나 지금의 저나 생각하는게 비슷했습니다!
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int solution(int k, int m, vector<int> score) {
int answer=0;
sort(score.begin(),score.end(),greater<int>());
int size = score.size();
int box=0;
while(size-m>=0){
size-=m;
box++;
answer+=m*(score[box*m-1]);
}
return answer;
}
풀이가 아주 유사합니다!
step은 다음과 같습니다.
참고로 한 가지 팁이 있다면, sort 함수를 사용할 때 3번째 인자에
greater<int>()
위의 인자를 넣어주게 되면 내림차순으로 정렬해줍니다! 그렇다면 오름차순으로 정렬하려면 어떻게 할까요?
혹시 고민하셨나요?
sort의 default는 오름차순 정렬입니다!
봐주셔서 감사드립니다. 이상으로 포스팅 마치겠습니다!