Algorithm

[Python] ๋ฐฑ์ค€ 1946 - ์‹ ์ž… ์‚ฌ์›

๐ŸฅญMango 2021. 2. 11. 22:36

๋ฌธ์ œ

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

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

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

 

์ž…๋ ฅ

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

 

์ถœ๋ ฅ

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


์ •๋‹ต

import sys
input = sys.stdin.readline

for _ in range(int(input())):
    n = int(input())
    rank = []
    for _ in range(n):
        a, b = map(int, input().split())
        rank.append([a, b])
        
    rank.sort(key= lambda x: x[0])
    count = 0
    last = n+1

    for a, b in rank:
        if b < last:
            count += 1
            last = b
    print(count)

1์ฐจ์™€ 2์ฐจ ์ˆœ์œ„๊ฐ€ ์žˆ์œผ๋ฏ€๋กœ 1์ฐจ ์ˆœ์œ„๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ •๋ ฌํ•ด์ค€๋‹ค.

1 4

2 3

3 2

4 1

5 5

์œ„์™€ ๊ฐ™์ด ์ •๋ ฌ์ด ๋˜๋Š”๋ฐ ์—ฌ๊ธฐ์„œ 2์ฐจ ์ˆœ์œ„๋งŒ ๋น„๊ตํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

last์— n+1์„ ์ง‘์–ด๋„ฃ์–ด์„œ ๊ฐ€์žฅ ๋‚ฎ์€ ์ˆœ์œ„๋กœ ๋งŒ๋“  ๋‹ค์Œ ๋น„๊ตํ•ด์ฃผ์—ˆ๋‹ค.

๋งŒ์•ฝ b๊ฐ€ last๋ณด๋‹ค ์ˆœ์œ„๊ฐ€ ๋†’๋‹ค๋ฉด(์ˆซ์ž๊ฐ€ ์ž‘๋‹ค๋ฉด) last๊ฐ’์„ b๋กœ ๋ฐ”๊ฟ”์ฃผ๊ณ , count์— 1์„ ์ฆ๊ฐ€์‹œ์ผœ์ฃผ์—ˆ๋‹ค.