๋ฌธ์
์ธ์ ๋ ์ต๊ณ ๋ง์ ์งํฅํ๋ ๊ตด์ง์ ๋๊ธฐ์ ์ง์ ์ฃผ์ํ์ฌ๊ฐ ์ ๊ท ์ฌ์ ์ฑ์ฉ์ ์ค์ํ๋ค. ์ธ์ฌ ์ ๋ฐ ์ํ์ 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์ ์ฆ๊ฐ์์ผ์ฃผ์๋ค.
'Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Python] ๋ฐฑ์ค 10829 - ์ด์ง์ ๋ณํ (0) | 2021.10.06 |
---|---|
[Python] ๋ฐฑ์ค 4796 - ์บ ํ (0) | 2021.02.13 |
[Python] ๋ฐฑ์ค 1931 - ํ์์ค ๋ฐฐ์ (0) | 2021.02.10 |
[Python] ๋ฐฑ์ค 2480 - ์ฃผ์ฌ์ ์ธ๊ฐ (0) | 2021.02.02 |
[Python] ๋ฐฑ์ค 15649 - N๊ณผ M (0) | 2021.01.30 |