λ°±μ€ 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
νμμ€ λ°°μ λ°±μ€ λ¬Έμ νμ΄νμ΅λλ€.
κ°μ¬ν©λλ€.