[백준/BOJ] 백준 1946번 : 신입 사원
2021. 3. 25. 20:09ㆍ알고리즘 문제풀이
vector<pair<int, int>> score_rank 에 (서류 순위, 면접 순위)로 저장하고 정렬을 하여 앞에 사람이 서류 순위는 앞서도록 정렬을 한다. 그리고 정렬한 수들을 확인하여 지금까지 나온 가장 앞선 면접 순위를 저장하여 앞의 수 보다 서류 순위에서는 밀리지만 어떠한 앞에 수 보다 면접순위에서는 앞설 때를 확인하여 문제를 해결했다.
코드
#include <iostream>
#include <algorithm>
#include <vector>
#include <utility>
using namespace std;
int t;
int n;
vector<pair<int, int>> score_rank;
int main()
{
cin.tie(NULL);
ios_base::sync_with_stdio(false);
cin >> t;
for (int tc = 0; tc < t; tc++)
{
score_rank.clear();
cin >> n;
for (int i = 0; i < n; i++)
{
int a, b;
cin >> a >> b;
score_rank.push_back(make_pair(a, b));
}
//앞에 사람이 서류 순위는 앞서도록 정렬
sort(score_rank.begin(), score_rank.end());
int result = 0;
int best_second = 987654321; //지금까지 나온 가장 앞선 면접 순위 저장
for (int i = 0; i < score_rank.size(); i++)
{
//앞의 수 보다 서류 순위에서는 밀리지만 어떠한 앞에 수 보다 면접순위에서는 앞설때
if (best_second > score_rank[i].second)
{
best_second = score_rank[i].second;
result++;
}
}
cout << result << "\n";
}
return 0;
}
'알고리즘 문제풀이' 카테고리의 다른 글
[백준/BOJ] 백준 2473번 : 세 용액 (0) | 2021.04.09 |
---|---|
[백준/BOJ] 백준 1202번 : 보석 도둑 (0) | 2021.03.25 |
[백준/BOJ] 백준 20541번 : 앨범정리 (0) | 2021.03.25 |
[백준/BOJ] 백준 19235번 : 모노미노도미노 (0) | 2021.03.25 |
[백준/BOJ] 백준 1107번 : 리모컨 (0) | 2021.03.25 |