๋ฐฑ์ค 1931๋ฒ: ํ์์ค ๋ฐฐ์ (์ค๋ฒ1) python
https://www.acmicpc.net/problem/1931
๋ฌธ์ ์ ๋๋ค
ํ๊ฐ์ ํ์์ค์ ์ต๋ค ํ์๊ฐ ์งํ๋๋๋ก ์๊ฐํ๋ฅผ ์์ฑํ๋ผ๊ณ ํฉ๋๋ค.
์ถ๊ฐ๋ก ์์์๊ฐ๊ณผ ๋์๊ฐ์ด ๊ฐ์ ์๋ ์๋ค๊ณ ํฉ๋๋ค.
์ ์ถ๋ ฅ ์กฐ๊ฑด๊ณผ ํํธ๋ ์ด๋ฌํฉ๋๋ค.
ํ์๋ฅผ ์ต๋ํ ๋ง์ด ์งํํ๊ธฐ์ํด์๋
1. ํ์๊ฐ ์ผ์ฐ ๋๋๋ ์์ผ๋ก ๋ฐฐ์ด์ ์ ๋ ฌํ๊ณ
2. ์ฒซ๋ฒ์งธ ํ์ ๋๋๋ ์๊ฐ <= ๋๋ฒ์งธ ํ์ ์์ ์๊ฐ // ํด๋น ์กฐ๊ฑด์ผ๋ก ํํฐ๋ง
3. ์ ์กฐ๊ฑด์ ์ผ์นํ๋ฉด ๋๋ฒ์งธ ํ์ ์์์๊ฐ์ ํ์ ๋๋๋ ์๊ฐ <= ์ธ๋ฒ์งธ ํ์ ์์์๊ฐ
์ด๋ฐ์์ผ๋ก ์นด์ดํธ๋ฅผ ํด๋๊ฐ์ต๋๋ค
์ด๋ฌ๋ฉด ์ต๋ํ ๋ง์ ํ์๋ฅผ ์งํํ ์ ์์ต๋๋ค
์ ๋ ฌํ ๋ฐฐ์ด์ ํฌ๋ฌธ์ผ๋ก ๋๋๋ฐ
2๋ฒ์กฐ๊ฑด์ ํด๋นํ๋ฉด countํ๋๋ก ํ์์ต๋๋ค.
import sys
n = int(input())
endPoint: int = 0
answer: int = 0
arr = []
for i in range(0,n):
a, b = map(int,sys.stdin.readline().rstrip().split())
arr.append([a,b])
arr.sort(key=lambda x: (x[1], x[0]))
for newStart, newEnd in arr:
if endPoint <= newStart:
answer += 1
endPoint = newEnd
print(answer)
๊ทธ๋์ ์ด๋ ๊ฒ ๊ตฌํํด์ฃผ์์ต๋๋ค.
์๋๋ ์ด์ฐจ์ ๋ฐฐ์ด์์ ๋๋ฒ์งธ ๊ฐ์ผ๋ก ์ ๋ ฌํ๊ณ
๊ฐ์ด ๊ฐ์ผ๋ฉด ์ฒซ๋ฒ์งธ ๊ฐ์ผ๋ก ์ ๋ ฌํ๋ ์ฝ๋ ์ ๋๋ค
arr.sort(key=lambda x: (x[1], x[0]))
def sort_key(item):
return (item[1], item[0]) # (๋๋ฒ์งธ ๊ฐ, ์ฒซ๋ฒ์งธ ๊ฐ)
arr.sort(key=sort_key)
์ ๋์๊ฐ๋ ๋ชจ์ต
์ด๋ ๊ฒ ์ค๋ฒ1
ํ์์ค ๋ฐฐ์ ๋ฐฑ์ค ๋ฌธ์ ํ์ดํ์ต๋๋ค.
๊ฐ์ฌํฉ๋๋ค.