λ¬Έμ
νλ‘κ·Έλλ¨Έμ€ - ν° μ λ§λ€κΈ°
νμ΄ κ³Όμ
k κ°μ μ«μλ₯Ό μ κ±°νμ¬ λ§λ€ μ μλ μ μ€μμ κ°μ₯ ν° μλ₯Ό μ°Ύλ λ¬Έμ μ
λλ€.
λ§μ½ λΈλ£¨νΈ ν¬μ€
λ‘ μ κ·Όν΄ λͺ¨λ μ‘°ν©μ λ§λ€μ΄ λ³Έλ€λ©΄ μ΅λ λ¬Έμμ΄μ κΈΈμ΄ λλ¬Έμ μκ°λ΄μ μνμ΄ λΆκ°λ₯ν©λλ€.
λμ μ ν° μλ₯Ό ꡬμ±νκΈ° μν 쑰건μΌλ‘ κ° μ«μλ₯Ό νμμ μΈ μ ν
μ λ°λΌ μ κ±°ν΄μ€λ€λ©΄ μ ν μκ°λ΄μ μνμ΄ κ°λ₯ν©λλ€.
μ΄λ₯Ό μν΄μλ νμμ μΈ μ ν
μ λ°λΌ μ°λ¦¬κ° μ λ μν΄λ³΄λ μΌμ΄ μμμ μ¦λͺ
ν΄μΌν©λλ€.
μ΄λ€ μ«μκ° κ°μ₯ ν° μκ° λκΈ° μν΄μλ κ°μ₯ λμ μ리μλΆν° ν° μλ₯Ό κ°μ ΈμΌν¨μ μλͺ
ν©λλ€.
λ°λΌμ μ°λ¦¬λ ν° μ리μ λΆν° νμμ μννλ©° (μΈλ±μ€λ‘ λ°μ§λ©΄ 0 λΆν°) κ°μ₯ ν° μκ° λκΈ° μν κ° μ«μλ€μ μ λΉμ±μ λ°μ Έλλ‘ ν©λλ€.
μ΄λ€ μλ₯Ό μ κ±°νλ€λ μλ―Έλ μ κ±°λλ μ«μ λ€μ μ리μκ° ν΄λΉ μ리μλ₯Ό λ체νλ€λ μλ―Έμ
λλ€.
λ°λΌμ μ«μκ° μ κ±°λ ν μ 체 μ리μκ° νλ μ€μ΄λ μν©μμ κ°μ₯ ν° μλ₯Ό μ μ§νκΈ° μν΄μλ μ κ±°λλ μ«μ λ€μμ μ€λ μκ° ν΄λΉ μλ³΄λ€ μ»€μΌν©λλ€.
κ·Έλ¬λ―λ‘ μ€ν
μ ν΅ν΄ κ° μ리μλ₯Ό μ μ₯νλ©΄μ νμ¬ top
μ μ‘΄μ¬νλ μλ³΄λ€ ν° μκ° μ
λ ₯μΌλ‘ λ€μ΄μ¬ κ²½μ° pop
μ°μ°μ ν΅ν΄ top
μλ νμ κ°μ₯ ν° μκ° μ μ§λλλ‘ ν΄μ€λλ€.
μ΄λ pop
λλ νμκ° λͺ©ν μ κ±° νμμ λ―ΈμΉμ§ λͺ»ν κ²½μ° νμ¬ μ«μλ λ΄λ¦Όμ°¨μμΌλ‘ ꡬμ±λμ΄μκΈ° λλ¬Έμ λ· μ리λΆν° λΆμ‘±ν κ°μ λ§νΌ μ κ±°ν΄μ£Όλ©΄ λλ κ²μ
λλ€.
μ½λ
def solution(number, k):
stack = []
pop_count = 0
for num in number:
if not stack or stack[-1] >= num:
stack.append(num)
elif stack[-1] < num:
while pop_count < k and stack and stack[-1] < num:
stack.pop()
pop_count += 1
stack.append(num)
if pop_count < k:
for _ in range(k-pop_count):
stack.pop()
return ''.join(stack)
number = '1924'
k = 2
print(solution(number, k)) # 94
'π algorithm > programmers' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
νλ‘κ·Έλλ¨Έμ€ Level 3 - λ€νΈμν¬ (0) | 2021.03.01 |
---|---|
νλ‘κ·Έλλ¨Έμ€ Level 3 - μ΅κ³ μ μ§ν© (0) | 2021.03.01 |
νλ‘κ·Έλλ¨Έμ€ Level 3 - μ¬ μ°κ²°νκΈ° (0) | 2021.03.01 |
νλ‘κ·Έλλ¨Έμ€ Level 4 - κ²μ 맡 μ΅λ¨κ±°λ¦¬ (0) | 2021.03.01 |
νλ‘κ·Έλλ¨Έμ€ Level 3 - μ κ΅ μ¬μ¬ (0) | 2021.03.01 |
π¬ λκΈ