[프로그래머스/1단계] [PCCE 기출문제] 10번 / 데이터 분석 - c++
정답률이 되게 낮은 문젠데 다른 문제들보다 오히려 쉽게 풀렸다.
풀이방법
사실 조건이 다 나와있지 않아서 처음에는 어렵게 다가왔다.
날짜는 무조건 작은게 맞지만 다른 것들은 작아야하는지 .. 커야하는지 .. 안나와있어서 도박식으로 다 작다고 조건을 넣었다.
1. val_ext 조건에 맞는 데이터만 answer에 넣어준다.
2. 그 뒤 전역변수 num을 선언해줘서 내가 원하는 정렬 조건(sort_by)을 num에 넣어서 만들어준다.
3. num에 들어간 수를 바탕으로 index어디가 기준인지에 따라서 정렬해준다.
bool compare(vector<int>& a, vector<int>& b) {
return a[num] < b[num];
}
vector의 경우는 이렇게 compare함수를 만들 수 있다.
4. 그 뒤 정렬해주면 된다.
#include <string>
#include <vector>
#include <algorithm>
using namespace std;
int num = 0;
bool compare(vector<int>& a, vector<int>& b) {
return a[num] < b[num];
}
vector<vector<int>> solution(vector<vector<int>> data, string ext, int val_ext, string sort_by) {
vector<vector<int>> answer;
// 조건에 맞는 데이터만 answer에 추가
for (int i = 0; i < data.size(); i++) {
if (ext == "code" && data[i][0] < val_ext) {
answer.push_back(data[i]);
}
else if (ext == "date" && data[i][1] < val_ext) {
answer.push_back(data[i]);
}
else if (ext == "maximum" && data[i][2] < val_ext) {
answer.push_back(data[i]);
}
else if (ext == "remain" && data[i][3] < val_ext) {
answer.push_back(data[i]);
}
}
// 정렬 기준에 따라 num 설정
if (sort_by == "code") {
num = 0;
}
else if (sort_by == "date") {
num = 1;
}
else if (sort_by == "maximum") {
num = 2;
}
else if (sort_by == "remain") {
num = 3;
}
// 정렬
sort(answer.begin(), answer.end(), compare);
return answer;
}
[프로그래머스/1단계] [PCCE 기출문제] 10번 / 데이터 분석 - c++
정답률 49%
[프로그래머스 1단계] 바탕화면 정리 - c++ (0) | 2024.03.09 |
---|---|
[프로그래머스 1단계] [PCCE 기출문제] 9번 / 이웃한 칸 - c++ (0) | 2024.03.09 |
[프로그래머스 1단계] 문자열 내 마음대로 정렬하기 -c++ (1) | 2024.02.24 |
[프로그래머스 1단계] 가장 가까운 같은 글자 -c++ (0) | 2024.02.24 |
[프로그래머스 1단계] 실패율 - c++ (테스트 6,7,9,13,24 실패 해결) (0) | 2024.02.24 |
댓글 영역