출처 : 1946번: 신입 사원 (acmicpc.net)
풀이 방법
서류심사와 면접시험이 둘 다 어떤 사람보다 낮으면 채용되지 않는다고 문제에 설명되어 있다.
서류심사 등수 기준으로 정렬을 한 뒤 서류심사 1등은 무조건 채용된다. 서류심사 1등의 면접 등수를
temp라는 변수에 저장한뒤 for문을 돌며 temp보다 좋은 등수를 받은 사람이 있으면 이 사람의 면접 등수를
temp에 저장해주고 ans를 +1해준다 이 과정을 for문 끝까지 반복한다.
#include<bits/stdc++.h>
using namespace std;
int ans = 0;
bool cmp(pair<int, int> p1, pair<int, int> p2) {
if (p1.first < p2.first) return true;
else return false;
}
void f(vector<pair<int,int>> people) {
sort(people.begin(), people.end(), cmp);
int temp = people[0].second;
for (int i = 0;i < people.size();i++) {
if (temp >people[i].second) {
ans++;
temp = people[i].second;
}
}
}
int main(){
int case_;
cin >> case_;
while(case_--) {
int N;
cin >> N;
vector<pair<int,int>> people;
for (int i = 0;i < N;i++) {
int n1, n2;
cin >> n1 >> n2;
people.push_back(make_pair(n1, n2));
}
f(people);
cout <<ans + 1<< endl;
ans = 0;
}
return 0;
}
'Algorithm' 카테고리의 다른 글
[백준] 알파벳 1987번 (c++) (0) | 2021.09.09 |
---|---|
[백준] 스타트 링크 5014번 (c++) (0) | 2021.09.07 |
[백준] 보물섬 2589번 (c++) (0) | 2021.08.09 |
[백준] 토마토 7576번 (c++) (0) | 2021.08.04 |
[백준] 정수 삼각형 1932번 (c++) (0) | 2021.08.02 |