백준 1946번: 신입 사원

gogowonji·2022년 4월 1일
0

알고리즘

목록 보기
7/7

백준 1946번: 신입 사원

//  Created by gogowonji on 2022/04/01.
//

#include <iostream>
#include <utility>
#include <algorithm>
using namespace std;

pair<int,int> score[100000];

int main() {
    // insert code here...
    ios::sync_with_stdio(false);
    cin.tie(NULL);
    
    
    int t_num;
    int people;
    cin >> t_num;
        
    while(t_num--){
        cin >> people;
        for(int i = 0; i < people; i++){
            cin >> score[i].first >> score[i].second;
        }
        sort(score, score+people);
        int apply = 1;
        int before = score[0].second;
        for(int i = 1; i < people; i++){
            if(score[i].second == 1){
                apply++;
                break;
            }else if(score[i].second < before){
                apply++;
                before = score[i].second;
            }
        }
        cout << apply << "\n";
        
    }
    
    
    return 0;
}

기준을 정해주고 그 기준을 통해서 그리디를 해결 해야겠다는 생각이 들었다.
그래서 기준을 서류 심사 등수로 지정 하는 코드를 구상하였다.

근데 어떤 자료구조를 쓸지 고민을 하다가
2차원 배열로는 정렬을 해주는 sort()함수를 못 쓸 것 같아서
서류와 면접 등수를 같이 가져갈 수 있도록 으로 값을 가져오길 바랐다.
기억을 더듬어 벡터가 그런 역할을 해주었던 것 같아서 찾아보니 pair를 사용하면 편리할 듯 했다.

그래서 pair를 이용하여 코드를 완성해주었다.

자료구조만 알았다면 1분 안에도 쉽게 짤 수 있는 문제 였던 것 같다.
여러 가지 자료구조를 배운지 너무 오래되어서 기억에 일부분만 남아있는 느낌이었다.
그래서 열심히 복기 해야겠다고 다짐했다.

그리고 이 문제를 풀던 날 채점 결과가 기다리는 중 으로 뜨고 채점이 계속 안되었다.
가끔 서버가 몰려서 채점이 지연되는 경우가 있다고 한다.
처음 경험해봐서 신기했다.

profile
개발자를 할까 말까

0개의 댓글