백준 1946 신입 사원 (C++)

안유태·2023년 6월 15일
0

알고리즘

목록 보기
98/239

1926번: 신입 사원

그리디를 활용한 문제이다. 먼저 서류심사 성적 순위 순으로 정렬을 한 후, 반복문을 돌면서 면접 성적 순위를 비교하여 순위가 더 높을 경우 카운트를 해주었다. 알고보면 간단한 문제였지만 문제를 이해하지 못해서 시간이 오래 걸렸다....



#include <iostream>
#include <vector>
#include <queue>
#include <algorithm>

using namespace std;
typedef pair<int, int> pii;

int N;
vector<pii> grade;

void init() {
	grade.clear();
}

void solution() {
	sort(grade.begin(), grade.end());

	int res = 1;
	int interview = grade[0].second;
	for (int i = 1; i < N; i++) {
		if (interview > grade[i].second) {
			res++;
			interview = grade[i].second;
		}
	}

	cout << res << endl;
}

int main(){
	ios_base::sync_with_stdio(false);
	cin.tie(NULL); cout.tie(NULL);

	int T;
	cin >> T;
	while (T--) {
		init();

		cin >> N;

		int doc, interview;
		for (int i = 0; i < N; i++) {
			cin >> doc >> interview;
			grade.push_back({ doc, interview });
		}

		solution();
	}
	
	return 0;
}
profile
공부하는 개발자

0개의 댓글