-
[λ°±μ€] 2841 μΈκ³μΈμ κΈ°ν μ°μ£Ό with PythonPS 2021. 12. 1. 21:51728x90λ°μν
π BOJ 2841 μΈκ³μΈμ κΈ°ν μ°μ£Ό
π‘ 쑰건
- λ©λ‘λλ μμ μ°μμ΄κ³ , κ° μμ μ€μμ ν΄λΉνλ νλ μ λλ₯΄κ³ μ€μ νκΈ°λ©΄ μ°μ£Όν μ μλ€.
- μ΄λ€ μ€μ νλ μ μ¬λ¬ κ° λλ₯΄κ³ μλ€λ©΄, κ°μ₯ λμ νλ μ μμ΄ λ°μ.
- λ©λ‘λμ ν¬ν¨λμ΄ μλ μμ μ
N
κ³Ό ν μ€μ μλ νλ μ μP
κ° μ£Όμ΄μ§λ€.(N β€ 500,000, 2 β€ P β€ 300,000)
- 2λ² νλ μ μμ μ°μ£Όνλ €κ³ νλ€λ©΄, 5λ²κ³Ό 7λ²μ λλ₯΄λ μκ°λ½μ λ λ€μμ 2λ² νλ μ λλ₯΄κ³ μ°μ£Όν΄μΌ νλ€.
- μκ°λ½μ κ°μ₯ μ κ² μμ§μ΄λ νμλ₯Ό ꡬνλ νλ‘κ·Έλ¨μ μμ±.
- Stack, μλ£κ΅¬μ‘° μ νμ λ¬Έμ
π₯ μμ€ μ½λ
from sys import stdin import heapq n, p = map(int, stdin.readline().split()) stack = [[] for _ in range(7)] res = 0 for _ in range(n): j, f = map(int, stdin.readline().split()) if not stack[j]: heapq.heappush(stack[j], f) res += 1 elif stack[j][-1] < f: heapq.heappush(stack[j], f) res += 1 elif stack[j][-1] > f: while 1: if not stack[j]: res += 1 stack[j].append(f) break if stack[j][-1] <= f: if stack[j][-1] < f: heapq.heappush(stack[j], f) res += 1 break stack[j].pop() res += 1 print(res)
π μμ λ° μ€νκ²°κ³Ό
μμ
7 15 1 5 2 3 2 5 2 7 2 4 1 5 1 3
μ€νκ²°κ³Ό
9
β¨οΈ λ¬Έμ νμ΄
κΈ°νμ μ€μ μλ―Ένλ stack 2μ°¨μ 리μ€νΈλ₯Ό μμ±νλ€.
μ€νμ κ° μμμ ν΄λΉνλ 리μ€νΈμλ λλ₯΄κ³ μλ νλ μ«μ λ°μ΄ν°κ° μ μ₯λλ€.μ λ ₯μ λ°μΌλ©΄μ, νλ μ«μλ₯Ό κ° μ€μ ν΄λΉνλ 리μ€νΈμ μ μ₯νλ€.
μ λ ₯λ°μ μ€μ ν΄λΉνλ 리μ€νΈμ μ΄λ―Έ λλ₯΄κ³ μλ νλ μ ν΄λΉνλ λ°μ΄ν°κ° μλ€λ©΄,
μ λ ₯λ°μ νλ λ²νΈκ° μ΄λ―Έ λλ₯΄κ³ μλ νλ μ λ²νΈλ³΄λ€ μμμ§ λκΉμ§ pop()μ ν΄μ£Όλ©΄μ res += 1μ ν΄μ€λ€.
λ§μ½ pop() μ ν νμκ° μλ€λ©΄ λ°λ‘ μΆκ°ν΄μ€λ€.νλ μ λ²νΈκ° κ²ΉμΉλ©΄ λ ν΄λΉ μ€μ νλ λ²νΈλ₯Ό μΆκ°νμ§ μκ³ , κ²ΉμΉμ§ μλλ€λ©΄ μΆκ°νκ³ , res += 1μ ν΄μ€λ€.
nλ§νΌ λ°λ³΅νλ€λ©΄, res λ₯Ό μΆλ ₯νλ€.
πΎ λλμ
- stack μλ£κ΅¬μ‘°λ₯Ό νμνλ λ¬Έμ μλ€.
- μμ΄λμ΄λ₯Ό λ μ¬λ¦¬κΈ°κΉμ§ μκ°μ΄ κ½€ κ±Έλ¦° λ¬Έμ μλ€.
- stack μ κ°λ μ μλ©΄, μ΄λ₯Ό λ€μν λ°©λ©΄μΌλ‘ νμ©ν μ μλ€λ κ²μ μκ² ν΄μ£Όμλ€.
- μλ£κ΅¬μ‘° λ¬Έμ λ μ’μ μμ΄λμ΄λ₯Ό λ μ¬λ¦΄ μ μκ² λ§μ΄ νμ΄λ΄μΌκ² λ€.
λ°μν'PS' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[λ°±μ€] 11497 ν΅λ무 건λλ°κΈ° with Python (0) 2021.12.06 [λ°±μ€] 6118 μ¨λ°κΌμ§ with Python (0) 2021.12.01 [λ°±μ€] 2304 μ°½κ³ λ€κ°ν with Python (0) 2021.11.29 [Programmers] μλ¬Όμ μ μ΄μ with Python (0) 2021.11.29 [Programmers] κΈ°λ₯κ³Ό 보 μ€μΉ with Python (0) 2021.11.28