


ext의 값이 val_ext보다 낮은 것을 저장하고 sort_by값에 따라 오름차순 정렬하는 문제이다. 처음에는 switch 문을 통해 idx1, idx2를 정해서 저장 및 정렬을 하려고 했는데 switch 문에는 문자열을 그냥 쓸 수 가 없는 것 같아서 map 자료형을 통해 idx 값을 정해서 저장 및 분류를 해주었다. 또한 compare 함수로 기준 값에 따라 오름차순 정렬되도록 만들었다.
코드
#include <string>
#include <vector>
#include <algorithm>
#include <map>
using namespace std;
map<string,int> m1={{"code",0},{"date",1},{"maximum",2},{"remain",3}};
int idx;
bool compare(const vector<int> &data1,const vector<int> &data2){
return data1[idx]<data2[idx];
}
vector<vector<int>> solution(vector<vector<int>> data, string ext, int val_ext, string sort_by) {
vector<vector<int>> answer;
idx=m1[sort_by];
for(auto d: data){
if(d[m1[ext]]<=val_ext){
answer.push_back(d);
}
}
sort(answer.begin(),answer.end(),compare);
return answer;
}
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스][LV0.][C++]겹치는 선분의 길이 & 안전지대 (4) | 2024.05.01 |
---|---|
[프로그래머스][LV 2][C++] 시소 짝꿍 (0) | 2024.03.11 |
[프로그래머스][LV 1][C++][PCCE 기출문제] 9번 / 이웃한 칸 (0) | 2024.03.06 |
[프로그래머스][LV 1][C++] 완주하지 못한 선수 (0) | 2024.03.06 |
[프로그래머스][LV 1][C++] 체육 (3) | 2024.03.05 |