출처 : 1946번: 신입 사원 (acmicpc.net)
1946번: 신입 사원
첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 20)가 주어진다. 각 테스트 케이스의 첫째 줄에 지원자의 숫자 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개 줄에는 각각의 지원자의 서류심사 성
www.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 |