Priceless

[백준] 1946번: 신입 사원 (C++) 본문

Algorithm & Test/백준

[백준] 1946번: 신입 사원 (C++)

Hyun__ 2023. 8. 20. 18:29

 

이 문제 같은 경우 단순히 합산 점수가 높아서 풀 수 있는 문제가 아니였다

테스트 케이스, 지원자 수, 지원자의 서류 순위와 면접 순위가 입력된다

 

C++로 풀 경우 stl의 pair를 활용하면 쉽게 풀 수 있는 문제

배열 두 개를 사용할 경우 한 배열을 나머지 배열을 같은 순서로 정렬해야 하지만 

pair로 두 값을 하나로 저장하면서 원활하게 구현할 수 있었다

 

우선 서류 순위를 정렬한다

서류 순위는 비교할 필요가 없으므로

순차적으로 면접 순위를 비교하여 다른 면접자들의 점수보다 높을 때

count를 늘리고 최고 값을 갱신한다

 

// baekjoon 1946

#include<iostream>
#include<algorithm>
#include<utility>


using namespace std;

// codes for fast I/O
void init(){
    cin.tie(0);
    cout.tie(0);
    ios_base::sync_with_stdio(false);
}


int main(){
    init();
    
    int t;
    cin >> t;
    
    int n;
    while (t--) {
        cin >> n;
        
        pair<int, int> score[n];
        for(int i = 0; i < n; i++) {
            cin >> score[i].first >> score[i].second;
        }
        
        sort(score, score + n);
        
        int max_score = score[0].second;
        int count = 0;
        
        for(int i = 0; i < n; i++){
            if(score[i].second <= max_score){
                count++;
                max_score = score[i].second;
            }
        }
        
        cout << count << '\n';
    }
}

[백준/C++] 백준 1946번: 신입 사원 (tistory.com)

 

[백준/C++] 백준 1946번: 신입 사원

별거 아닌데 문제가 이해안되서 헤맸다. 난독인듯. 서류랑 면접 순위를 나타낸건데 점수를 나타낸 건 줄 알고 계속 고뇌에 빠졌었다. 순위가 서류와 면접 두 가지로 주어지기 때문에 일단 서류/

sanghyu.tistory.com

오랜만에 pair를 사용하는 문제를 봤다

예전에 코테를 잠깐 공부하면서 

골드 문제 '탑'을 풀어보겠다고 배열을 쓰다가

도저히 못 풀어서 찾아봤을 때 pair를 쓰는 것을 보고

그 이후로 코테 공부를 멈췄었는데

오랜만에 봐서 다시 공부하니까

그렇게 또 어렵진 않았다

 

그래도 새로운 개념이니까

pair만 한 번 정리해서 올릴 예정이다

 

가만 보면 지레 겁먹고 문제를 못 푸는 경우가 있는 것 같다

새로운 것을 배우는 데에 겁 먹지 말고

아무 생각 없이 공부하는 게 좋은 것 같다