๐Ÿ•๏ธ ICPC Sinchon/Sorting

[BOJ S1][C++] ๋ฐฑ์ค€ 1946๋ฒˆ : ์‹ ์ž… ์‚ฌ์›

์„ ๋‹ฌ 2022. 9. 6. 17:07
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ

์–ธ์ œ๋‚˜ ์ตœ๊ณ ๋งŒ์„ ์ง€ํ–ฅํ•˜๋Š” ๊ตด์ง€์˜ ๋Œ€๊ธฐ์—… ์ง„์˜ ์ฃผ์‹ํšŒ์‚ฌ๊ฐ€ ์‹ ๊ทœ ์‚ฌ์› ์ฑ„์šฉ์„ ์‹ค์‹œํ•œ๋‹ค. ์ธ์žฌ ์„ ๋ฐœ ์‹œํ—˜์€ 1์ฐจ ์„œ๋ฅ˜์‹ฌ์‚ฌ์™€ 2์ฐจ ๋ฉด์ ‘์‹œํ—˜์œผ๋กœ ์ด๋ฃจ์–ด์ง„๋‹ค. ์ตœ๊ณ ๋งŒ์„ ์ง€ํ–ฅํ•œ๋‹ค๋Š” ๊ธฐ์—…์˜ ์ด๋…์— ๋”ฐ๋ผ ๊ทธ๋“ค์€ ์ตœ๊ณ ์˜ ์ธ์žฌ๋“ค๋งŒ์„ ์‚ฌ์›์œผ๋กœ ์„ ๋ฐœํ•˜๊ณ  ์‹ถ์–ด ํ•œ๋‹ค.

๊ทธ๋ž˜์„œ ์ง„์˜ ์ฃผ์‹ํšŒ์‚ฌ๋Š”, ๋‹ค๋ฅธ ๋ชจ๋“  ์ง€์›์ž์™€ ๋น„๊ตํ–ˆ์„ ๋•Œ ์„œ๋ฅ˜์‹ฌ์‚ฌ ์„ฑ์ ๊ณผ ๋ฉด์ ‘์‹œํ—˜ ์„ฑ์  ์ค‘ ์ ์–ด๋„ ํ•˜๋‚˜๊ฐ€ ๋‹ค๋ฅธ ์ง€์›์ž๋ณด๋‹ค ๋–จ์–ด์ง€์ง€ ์•Š๋Š” ์ž๋งŒ ์„ ๋ฐœํ•œ๋‹ค๋Š” ์›์น™์„ ์„ธ์› ๋‹ค. ์ฆ‰, ์–ด๋–ค ์ง€์›์ž A์˜ ์„ฑ์ ์ด ๋‹ค๋ฅธ ์–ด๋–ค ์ง€์›์ž B์˜ ์„ฑ์ ์— ๋น„ํ•ด ์„œ๋ฅ˜ ์‹ฌ์‚ฌ ๊ฒฐ๊ณผ์™€ ๋ฉด์ ‘ ์„ฑ์ ์ด ๋ชจ๋‘ ๋–จ์–ด์ง„๋‹ค๋ฉด A๋Š” ๊ฒฐ์ฝ” ์„ ๋ฐœ๋˜์ง€ ์•Š๋Š”๋‹ค.

์ด๋Ÿฌํ•œ ์กฐ๊ฑด์„ ๋งŒ์กฑ์‹œํ‚ค๋ฉด์„œ, ์ง„์˜ ์ฃผ์‹ํšŒ์‚ฌ๊ฐ€ ์ด๋ฒˆ ์‹ ๊ทœ ์‚ฌ์› ์ฑ„์šฉ์—์„œ ์„ ๋ฐœํ•  ์ˆ˜ ์žˆ๋Š” ์‹ ์ž…์‚ฌ์›์˜ ์ตœ๋Œ€ ์ธ์›์ˆ˜๋ฅผ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

์ž…๋ ฅ

์ฒซ์งธ ์ค„์—๋Š” ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ๊ฐœ์ˆ˜ T(1 ≤ T ≤ 20)๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์˜ ์ฒซ์งธ ์ค„์— ์ง€์›์ž์˜ ์ˆซ์ž N(1 ≤ N ≤ 100,000)์ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„๋ถ€ํ„ฐ N๊ฐœ ์ค„์—๋Š” ๊ฐ๊ฐ์˜ ์ง€์›์ž์˜ ์„œ๋ฅ˜์‹ฌ์‚ฌ ์„ฑ์ , ๋ฉด์ ‘ ์„ฑ์ ์˜ ์ˆœ์œ„๊ฐ€ ๊ณต๋ฐฑ์„ ์‚ฌ์ด์— ๋‘๊ณ  ํ•œ ์ค„์— ์ฃผ์–ด์ง„๋‹ค. ๋‘ ์„ฑ์  ์ˆœ์œ„๋Š” ๋ชจ๋‘ 1์œ„๋ถ€ํ„ฐ N์œ„๊นŒ์ง€ ๋™์„์ฐจ ์—†์ด ๊ฒฐ์ •๋œ๋‹ค๊ณ  ๊ฐ€์ •ํ•œ๋‹ค.

์ถœ๋ ฅ

๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์— ๋Œ€ํ•ด์„œ ์ง„์˜ ์ฃผ์‹ํšŒ์‚ฌ๊ฐ€ ์„ ๋ฐœํ•  ์ˆ˜ ์žˆ๋Š” ์‹ ์ž…์‚ฌ์›์˜ ์ตœ๋Œ€ ์ธ์›์ˆ˜๋ฅผ ํ•œ ์ค„์— ํ•˜๋‚˜์”ฉ ์ถœ๋ ฅํ•œ๋‹ค.

 

ํ’€์ด

 

๋‘๊ฐœ๋ฅผ ํ•œ๋ฒˆ์— ๋น„๊ตํ•˜๋ ค๊ณ  ํ•˜์ง€ ์•Š๊ณ 

1. ์šฐ์„  ์„œ๋ฅ˜ ์‹ฌ์‚ฌ ์„ฑ์ ์œผ๋กœ ์ •๋ ฌํ•œ๋‹ค.

2. ์„œ๋ฅ˜ ์„ฑ์ ์œผ๋กœ ๋ฐ˜๋ณต๋ฌธ์„ ๋Œ๋ฉฐ ์ž์‹ ๋ณด๋‹ค ์œ„์— ์žˆ๋Š” ์‚ฌ๋žŒ๋“ค์˜ ๋ฉด์ ‘ ์„ฑ์ ์˜ ์ตœ๊ณ ์  (๋“ฑ์ˆ˜๊ฐ€ ๋‚ฎ์„์ˆ˜๋ก ์„ฑ์ ์ด ๋†’์Œ) ๋ณด๋‹ค ์„ฑ์ ์ด ๋‚ฎ๋‹ค๋ฉด

์ด๋Š” ์„œ๋ฅ˜์„ฑ์ ๊ณผ ๋ฉด์ ‘์„ฑ์  ๋‘˜๋‹ค ๋‚ฎ๋‹ค๋Š” ๋œป์ด๋ฏ€๋กœ ํƒˆ๋ฝ, ์•„๋‹ˆ๋ผ๋ฉด ํ•ฉ๊ฒฉ

 

// Authored by : seondal
// Co-authored by : -

// #include <bits/stdc++.h>
#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

typedef pair<int, int> p;

int cnt(int n, vector<p> v) {
    int highest = v[0].second, pass = 1;
    for(int i=1; i<n; i++) {
        if(highest > v[i].second) {
            highest = v[i].second;
            pass++;
        }
    }
    return pass;
}

int main() {
    int t;
    cin >> t;
    
    while(t--){
        int n;
        cin >> n;
        
        vector<p> v(n);
        for(int i=0; i<n; i++) {
            cin >> v[i].first >> v[i].second;
        }
        
        sort(v.begin(), v.end()); // ์„œ๋ฅ˜ ์„ฑ์ ์ˆœ์œผ๋กœ ์ •๋ ฌ
        
        int ans = cnt(n, v);
        
        cout << ans << "\n";
    }
    
    return 0;
}

/*
 */
๋ฐ˜์‘ํ˜•