• Home
  • About
    • 게임 개발자 유정룡 photo

      게임 개발자 유정룡

      포트폴리오

    • Learn More
    • Email
    • Github
    • Bitbucket
  • Projects
    • All Projects
    • All Tags

코딩테스트 백준 - 1946 신입 사원

23 Sep 2021

Reading time ~1 minute

문제

회의실과 비슷한 문제이다.

일단 첫번째 수로 정렬을 하고 그 뒤, 그 다음 수를 비교하면서 가장 큰 값을 찾으면 횟수를 올리고 큰 값을 갱신해준다.

#include <iostream>
#include <vector>

#include <algorithm>

using namespace std;

struct Person
{
	int testValue;
	int interviewValue;
};

bool ComparePerson(const Person& lValue, const Person& r
{
	if (lValue.testValue == rValue.testValue)
	{
		return lValue.interviewValue > rValue.interviewVal
	}

	return lValue.testValue < rValue.testValue;
}

int GetPersonCount(vector<Person>& v)
{
	sort(v.begin(), v.end(), ComparePerson);

	int maxRank = v[0].interviewValue;
	int count = 1;
	for (int i = 1; i < v.size(); i++)
	{
		if (maxRank > v[i].interviewValue)
		{
			count++;
			maxRank = v[i].interviewValue;
		}
	}
	return count;
}

int main()
{
	int T;
	cin >> T;

	for (int i = 0; i < T; i++)
	{
		int N;
		cin >> N;
		vector<Person> v(N);
		for (int j = 0; j < N; j++)
		{
			cin >> v[j].testValue >> v[j].interviewValue;
		}

		cout << GetPersonCount(v) << "\n";
	}
}


CodingTest Share Tweet +1