Creative Code

데이터 분석 본문

프로그래머스 코테 문제/LEVEL 1

데이터 분석

빛하루 2024. 4. 12. 18:49

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

 

프로그래머스

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

programmers.co.kr

#include <string>
#include <vector>
#include <iostream>
#include <algorithm>

using namespace std;

bool compare1(vector<int>a, vector<int>b) { // 정렬기준이 "code"
    return a[0] < b[0];
}
bool compare2(vector<int>a, vector<int>b) { // 정렬기준이 "date"
    return a[1] < b[1];
}
bool compare3(vector<int>a, vector<int>b) { // 정렬기준이 "maximum"
    return a[2] < b[2];
}
bool compare4(vector<int>a, vector<int>b) { // 정렬기준이 "remain"
    return a[3] < b[3];
}

vector<vector<int>> solution(vector<vector<int>> data, string ext, int val_ext, string sort_by) {
    vector<vector<int>> answer;
    for (int i = 0; i < data.size(); i++) {
        if (ext == "code" && data[i][0] < val_ext) { //code가 기준보다 작은경우
            answer.push_back(data[i]);
        }
        else if (ext == "date" && data[i][1] < val_ext) { // date가 기준보다 작은경우
            answer.push_back(data[i]);
        }
        else if (ext == "maximum" && data[i][2] < val_ext) { // maximum이 기준보다 작은경우
            answer.push_back(data[i]);
        }
        else if (ext == "remain" && data[i][3] < val_ext) { // remain이 기준보다 작은경우
            answer.push_back(data[i]);
        }
    }
    if (sort_by == "code") {
        sort(answer.begin(), answer.end(), compare1); 
    }
    else if (sort_by == "date") {
        sort(answer.begin(), answer.end(), compare2);
    }
    else if (sort_by == "maximum") {
        sort(answer.begin(), answer.end(), compare3);
    }
    else {
        sort(answer.begin(), answer.end(), compare4);
    }

    return answer;
}

'프로그래머스 코테 문제 > LEVEL 1' 카테고리의 다른 글

가장 많이 받은 선물  (0) 2024.04.12
이웃한 칸  (0) 2024.04.12
붕대 감기  (0) 2024.04.12