전국 대회 선발 고사 : 문제 링크
pair 클래스 사용법
template <class T1, class T2> struct pair;
- T1 : first, T2 : second
- p.first : p의 첫번째 인자를 return
- p.second : p의 두번째 인자를 return
algorithm 헤더의 sort() 함수 사용법
void sort(T start, T end, Compare comp); //comp 인자가 공란이면 오름차순 정렬
- sort(v.begin(), v.end(), compare); // 사용자 정의 함수 사용
- sort(v.begin(), v.end(), greater<자료형>()); // 내림차순
- sort(v.begin(), v.end(), less<자료형>()); // 오름차순
#include <vector>
#include <algorithm>
using namespace std;
int solution(vector<int> rank, vector<bool> attendance) {
int answer = 0;
vector<pair<int, int>> attended;
for(int i = 0; i < rank.size(); ++i) {
if(attendance[i]) attended.push_back({rank[i], i});
}
sort(attended.begin(), attended.end());
answer = 10000 * attended[0].second + 100 * attended[1].second + attended[2].second;
return answer;
}