ํ‹ฐ์Šคํ† ๋ฆฌ ๋ทฐ

https://www.acmicpc.net/problem/1931

 

๋ฌธ์ œ์ž…๋‹ˆ๋‹ค

 

 

 

ํ•œ๊ฐœ์˜ ํšŒ์˜์‹ค์— ์ตœ๋‹ค ํšŒ์˜๊ฐ€ ์ง„ํ–‰๋˜๋„๋ก ์‹œ๊ฐ„ํ‘œ๋ฅผ ์ž‘์„ฑํ•˜๋ผ๊ณ ํ•ฉ๋‹ˆ๋‹ค.

์ถ”๊ฐ€๋กœ ์‹œ์ž‘์‹œ๊ฐ„๊ณผ ๋์‹œ๊ฐ„์ด ๊ฐ™์„ ์ˆ˜๋„ ์žˆ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

 

 

 

 

 

์ž…์ถœ๋ ฅ ์กฐ๊ฑด๊ณผ ํžŒํŠธ๋Š” ์ด๋Ÿฌํ•ฉ๋‹ˆ๋‹ค.

 

 

 

 

ํšŒ์˜๋ฅผ ์ตœ๋Œ€ํ•œ ๋งŽ์ด ์ง„ํ–‰ํ•˜๊ธฐ์œ„ํ•ด์„œ๋Š”

 

 

1. ์ผ์ฐ ๋๋‚˜๋Š” ์ˆœ์œผ๋กœ ๋จผ์ € ํšŒ์˜๋ฅผ ์ •๋ ฌํ•˜๊ณ  

2. ์ฒซ๋ฒˆ์งธ(n)ํšŒ์˜ ๋๋‚˜๋Š” ์‹œ๊ฐ„ <= ๋‘๋ฒˆ์งธ(n+1) ํšŒ์˜ ์‹œ์ž‘ ์‹œ๊ฐ„ // ํ•ด๋‹น ์กฐ๊ฑด์œผ๋กœ ํ•„ํ„ฐ๋ง

 

 

์ด๋ ‡๊ฒŒ ์ ‘๊ทผํ•˜์˜€์Šต๋‹ˆ๋‹ค

 

 

๊ทธ๋ž˜์„œ ์ •๋ ฌํ•œ ๋ฐฐ์—ด์„ ํฌ๋ฌธ์œผ๋กœ ๋„๋Š”๋ฐ

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]))

 

 

 

 

 

 

 

 

์ž˜ ๋Œ์•„๊ฐ€๋Š” ๋ชจ์Šต

 

 

์ด๋ ‡๊ฒŒ ์‹ค๋ฒ„1 

ํšŒ์˜์‹ค ๋ฐฐ์ • ๋ฐฑ์ค€ ๋ฌธ์ œ ํ’€์ดํ–ˆ์Šต๋‹ˆ๋‹ค.

 

 

๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค.

 

๋Œ“๊ธ€