[Programmers/코딩테스트 연습] 과일장수 Python
2022. 11. 21. 09:16ㆍIT/Programmers
728x90
반응형
Lv.1 과일장수 (python)
#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<>());
for(int l = 1; (l*m)-1 < score.size(); l++) {
answer += (m * score[l*m -1]);
}
return answer;
}
C/C++로 먼저 했었는데, 10, 11, 12, 13 테스트가 시간 초과로 실패했다.
대체 뭐가 문제인지 모르겠고 백엔드에서는 c/c++ 안쓰는 것 같아서 그냥 앞으로 python이랑 java에 전념하기로...
#include <stdio.h>
#include <stdlib.h>
int func_compare_r(const void *_a, const void *_b) {
return (*(int *)_b - *(int *)_a);
}
int solution() {
int answer = 0;
/* 내림차 정렬
int tmp = 0;
for(int i = 0; i < score_len; i++){
for(int j = 0; j < score_len; j++) {
if(score[i] > score[j]) {
tmp = score[j];
score[j] = score[i];
score[i] = tmp;
}
}
}
*/
/* quick sort 함수 사용한 내림차정렬, func_compare_r에서 error
qsort(&score, score_len, sizeof(int), func_compare_r);
for(int k = 0; k < score_len; k++) {
printf("%d",score[k]);
}
*/
/* while문으로 계산
int l = 1;
while((l*m)-1 < score_len) {
answer += m*score[(l*m)-1];
l++;
}
*/
//for문으로 계산 (시간초과가 while문 때문인가 싶어서 바꿔보았음)
for(int l = 1; (l*m)-1 < score_len; l++) {
answer += (m * score[l*m -1]);
}
}
안녕 5년간 함께했던 c++.....!
728x90
반응형
'IT > Programmers' 카테고리의 다른 글
[Programmers/코딩테스트 입문] 아이스 아메리카노, 배열뒤집기 Java (StringBuffer, charAt) (0) | 2022.11.28 |
---|---|
[Programmers/코딩테스트 연습] 짝수는 싫어요 Java (arraylist 동적 배열) (0) | 2022.11.27 |
[Programmers/코딩테스트 연습] 최빈값 구하기 java (0) | 2022.11.26 |
[Programmers/코딩테스트 연습] 피자 Java (0) | 2022.11.25 |
[Programmers/코딩테스트 연습] 중앙값 - 배열 연산자, 나누기 연산자, python 주석처리 (0) | 2022.11.24 |