๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ”ฅ PS(Problem Solving) ๐Ÿ”ฅ/BOJ

[BOJ] #1946 ์‹ ์ž… ์‚ฌ์›

by dar0m! 2019. 9. 4.
์‹œ๊ฐ„ ์ œํ•œ ๋ฉ”๋ชจ๋ฆฌ ์ œํ•œ ์ •๋‹ต ๋น„์œจ
2 ์ดˆ 256 MB 35.582 %

 

 

1946๋ฒˆ: ์‹ ์ž… ์‚ฌ์›

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

www.acmicpc.net

์ตœ๊ณ ๋งŒ์„ ์ง€ํ–ฅํ•œ๋‹ค๋Š” ๊ธฐ์—…์˜ ์ด๋…์— ๋”ฐ๋ผ ๊ทธ๋“ค์€ ์ตœ๊ณ ์˜ ์ธ์žฌ๋“ค๋งŒ์„ ์‚ฌ์›์œผ๋กœ ์„ ๋ฐœํ•˜๊ณ  ์‹ถ์–ด ํ•œ๋‹ค.

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

์ฆ‰, ์„œ๋ฅ˜์‹ฌ์‚ฌ ๊ฒฐ๊ณผ ๋˜๋Š” ๋ฉด์ ‘ ์„์ • ์ค‘ ํ•˜๋‚˜๋งŒ ๋–จ์–ด์ง€๋ฉด ๊ดœ์ฐฎ๋‹ค.

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

 

๋ฉ”๋ชจ๋ฆฌ ์‹œ๊ฐ„
2768 KB 176 ms
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
#include <cstdio>
#include <iostream>
#include <string.h>
#include <algorithm>
using namespace std;
typedef pair<intint> p;
 
int t, n, interview, ans;
p arr[100005];
 
int main() {
    scanf("%d"&t);
    while (t--) {
        scanf("%d"&n);
        for (int i = 0, a, b; i < n; i++) {
            scanf("%d %d"&arr[i].first, &arr[i].second);
        }
        sort(arr, arr + n);
        interview = arr[0].second, ans = n;
        for (int i = 1; i < n; i++) {
            if (arr[i].second > interview) {
                ans--;
            }
            else interview = arr[i].second;
        }
        printf("%d\n", ans);
    }
 
    return 0;
}
 
cs

๋Œ“๊ธ€