(백준 알고리즘 문제풀이) 1946번 신입 사원
by 줌코딩
문제
어떻게 접근할 것인가?
- 첫번째 순위와 두번째 순위가 있다.
- 일단 첫번째 순위로 솔팅한 다음에 위에 있는 애들 중에 베스트를 저장해놓고 비교해서 두번째 순위보다 작으면 그 값을 맥스로 저장하고 결과값을 하나 추가 시켜준다.
코드
#include <string>
#include <vector>
#include <iostream>
#include <algorithm>
using namespace std;
int main() {
vector<int> answers;
int t, n, g1, g2;
vector<pair<int, int>> v;
cin >> t;
for(int i = 0; i < t; i++){
cin >> n;
v.clear();
int g2_max = 100000, answer = 0;
for(int j = 0; j < n; j++){
cin >> g1 >> g2;
v.push_back(make_pair(g1, g2));
}
sort(v.begin(), v.end());
for(int j = 0; j < n; j++){
if(v[j].second <= g2_max){
g2_max = v[j].second;
answer ++;
}
}
answers.push_back(answer);
}
for(int i = 0; i < answers.size(); i++)cout << answers[i]<<endl;
}
이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
Subscribe via RSS