728x90
https://www.acmicpc.net/problem/1946
1946번: 신입 사원
첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 20)가 주어진다. 각 테스트 케이스의 첫째 줄에 지원자의 숫자 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개 줄에는 각각의 지원자의 서류심사 성
www.acmicpc.net
처음엔 모든 사람들을 비교해봐야 했는데 문제를 제대로 이해하면 다르게 진행된다..
둘 중에 하나만 크면 통과다. 그러니까 일단 서류 통과를 기준으로 정렬하고 서류 통과 1등을 뽑고
인터뷰점수로 더 높은 점수의 사람을 채용하도록 한다. 더 높았던 그 점수는 다시 업데이트된다.
#include <iostream>
#include <algorithm>
using namespace std;
int main(){
ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
int t;
pair<int, int> p[100001];
cin >> t;
while(t--){
int n;
cin >> n;
for(int i=0; i<n; i++) cin >> p[i].first >> p[i].second;
sort(p, p+n);
int ans = 1;
int interview = p[0].second; //서류심사 1위인 사람의 인터뷰 점수
for(int i=1; i<n; i++){
if(p[i].second < interview){
ans++;
interview = p[i].second;
}
}
cout << ans << '\n';
}
return 0;
}
728x90
'알고리즘 > 백준' 카테고리의 다른 글
[백준/c++] 3649번: 로봇 프로젝트 (0) | 2022.07.26 |
---|---|
[백준/c++] 1747번: 소수&팰린드롬 (0) | 2022.07.25 |
[백준/c++] 2529번: 부등호 (0) | 2022.07.25 |
[백준/c++] 1449번: 수리공 항승 (0) | 2022.07.25 |
[백준/c++] 1205번: 등수 구하기 (0) | 2022.07.24 |