https://www.acmicpc.net/problem/1946
1946번: 신입 사원
첫째 줄에는 테스트 케이스의 개수 T(1 ≤ T ≤ 20)가 주어진다. 각 테스트 케이스의 첫째 줄에 지원자의 숫자 N(1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개 줄에는 각각의 지원자의 서류심사 성
www.acmicpc.net
풀이
1. 점수가 아니라 순위를 입력 받는거니까 조심
2. 서류 순위 순으로 정렬
3. 서류 1등은 당연히 뽑는거니까 cnt = 1로 초기화하고,
루프
4.면접 점수가 서류 1등보다 높은놈을 찾아냄
-> 이제 이놈의 면접점수보다 높은놈을 이어서 찾아서 골라내면 됨
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
bool cmp(pair<int, int>a, pair<int, int> b)
{
return a.first < b.first;
}
int main()
{
int tc;
cin >> tc;
int n;
int tmp_1, tmp_2;
vector<pair<int, int> > people;
for (int tt = 0; tt < tc; tt++)
{
int cnt = 1;
people.clear();
cin >> n;
for (int i = 0; i < n; i++)
{
cin >> tmp_1 >> tmp_2;
people.push_back(make_pair(tmp_1, tmp_2));
}
sort(people.begin(), people.end(),cmp);
int tmp = people[0].second;
for (int i = 1; i < n;i++)
{
if (people[i].second < tmp)
{
cnt++;
tmp = people[i].second;
}
}
cout << cnt << endl;
}
}
'c++ > Baekjoon Online' 카테고리의 다른 글
백준 8980 : 택배 C++ (0) | 2021.06.27 |
---|---|
백준 1507 : 궁금한 민호 C++ (0) | 2021.06.27 |
백준 1700 : 멀티탭 스케줄링 C++ (0) | 2021.06.24 |
백준 2579 : 계단 오르기 C++ (0) | 2020.11.20 |
백준 : 다리 만들기 2 c++ (0) | 2020.11.19 |