λ¬Έμ
ν κ°μ νμμ€μ΄ μλλ° μ΄λ₯Ό μ¬μ©νκ³ μ νλ Nκ°μ νμμ λνμ¬ νμμ€ μ¬μ©νλ₯Ό λ§λ€λ €κ³ νλ€. κ° νμ Iμ λν΄ μμμκ°κ³Ό λλλ μκ°μ΄ μ£Όμ΄μ Έ μκ³ , κ° νμκ° κ²ΉμΉμ§ μκ² νλ©΄μ νμμ€μ μ¬μ©ν μ μλ νμμ μ΅λ κ°μλ₯Ό μ°Ύμ보μ. λ¨, νμλ νλ² μμνλ©΄ μ€κ°μ μ€λ¨λ μ μμΌλ©° ν νμκ° λλλ κ²κ³Ό λμμ λ€μ νμκ° μμλ μ μλ€. νμμ μμμκ°κ³Ό λλλ μκ°μ΄ κ°μ μλ μλ€. μ΄ κ²½μ°μλ μμνμλ§μ λλλ κ²μΌλ‘ μκ°νλ©΄ λλ€.
μ λ ₯
첫째 μ€μ νμμ μ N(1 ≤ N ≤ 100,000)μ΄ μ£Όμ΄μ§λ€. λμ§Έ μ€λΆν° N+1 μ€κΉμ§ κ° νμμ μ λ³΄κ° μ£Όμ΄μ§λλ° μ΄κ²μ 곡백μ μ¬μ΄μ λκ³ νμμ μμμκ°κ³Ό λλλ μκ°μ΄ μ£Όμ΄μ§λ€. μμ μκ°κ³Ό λλλ μκ°μ 231-1λ³΄λ€ μκ±°λ κ°μ μμ°μ λλ 0μ΄λ€.
μΆλ ₯
첫째 μ€μ μ΅λ μ¬μ©ν μ μλ νμμ μ΅λ κ°μλ₯Ό μΆλ ₯νλ€.
μ λ΅
n = int(input())
meet = []
for _ in range(n):
s, e = map(int, input().split())
meet.append([s, e])
#λλλ μκ°μ κΈ°μ€μΌλ‘ μ λ ¬
meet.sort(key=lambda x : (x[1], x[0]))
count = 0
last = 0
for s, e in meet:
if s >= last:
last = e
count += 1
print(count)
λ¨Όμ νμμ μ(n)λ₯Ό μ λ ₯λ°μμ£Όκ³
νμμ μ 보λ₯Ό meetμ΄λΌλ 리μ€νΈμ μμμκ°(s)κ³Ό λλλ μκ°(e)λ₯Ό 리μ€νΈ ννλ‘ μ§μ΄λ£μ΄μ£Όκ³
λλλ μκ°μ κΈ°μ€μΌλ‘ μ λ ¬ν΄μ£Όμλλ°, λλλ μκ°μ κΈ°μ€μΌλ‘ μ λ ¬μ ν΄μΌ νμμ μ΅λ κ°μλ₯Ό μ μ μκΈ° λλ¬Έμ΄λ€.
κ·Έ λ€μ μμμκ°μ΄ λλλ μκ°κ³Ό κ°κ±°λ ν¬λ€λ©΄ μΉ΄μ΄νΈλ₯Ό μ¦κ°μμΌμ£Όκ³ , lastμ κ°μ λλλ μκ°μΌλ‘ λ°κΏμ€λ€.
'Algorithm' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[Python] λ°±μ€ 4796 - μΊ ν (0) | 2021.02.13 |
---|---|
[Python] λ°±μ€ 1946 - μ μ μ¬μ (0) | 2021.02.11 |
[Python] λ°±μ€ 2480 - μ£Όμ¬μ μΈκ° (0) | 2021.02.02 |
[Python] λ°±μ€ 15649 - Nκ³Ό M (0) | 2021.01.30 |
[Python] λ°±μ€ 5355 - νμ± μν (0) | 2021.01.25 |