끄적끄적 코딩
article thumbnail
Published 2019. 11. 23. 02:34
[C++] 백준 1946번 신입 사원 알고리즘

신입사원을 뽑는데 서류심사 성적과 면접 성적 두개의 순위가 주어집니다.
다른 사원보다 둘다 낮은 경우가 있다면 뽑히지 못합니다.
최종 선발 가능한 신입사원의 수를 구하여야 합니다.

서류심사 성적으로 정렬을 한 다음 1등의 면접 성적을 기준으로 2등부터 차례대로 비교합니다.
면접 성적 등수가 1등보다 낮으면 둘다 낮은 경우이므로 패스하고
높으면은 카운트를 증가시키고, 비교하는 등수를 현재의 등수로 지정해서 비교를 계속합니다.

 

#include <iostream>
#include <cstring>
#include <algorithm>
#include <vector>
#include <queue>
using namespace std;

int main(int argc, char* argv[])
{
	int ts;
	int n;
	int num;
	int count;
	pair<int, int> p[100010];

	cin >> ts;

	while (ts--) {
		count = 1;

		cin >> n;

		for(int i=0; i<n; ++i){
			cin >> p[i].first >> p[i].second;
		}

		sort(p, p + n);

		num = p[0].second;

		for (int i = 1; i < n; ++i) {
			if (num > p[i].second) {
				num = p[i].second;
				++count;
			}
		}

		cout << count << endl;
	}

	return 0;
}

'알고리즘' 카테고리의 다른 글

[C++] 백준 1969번 DNA  (0) 2019.11.23
[C++] 백준 4796번 캠핑  (0) 2019.11.23
[C++] 백준 11000번 강의실 배정  (0) 2019.11.23
[C++] 백준 16076번 휴식이 필요해  (0) 2019.11.13
[C++] 백준 15439번 Vera and Outfits  (0) 2019.11.13

검색 태그