문제풀이/백준(Boj) 문제풀이

[stack][백준] - 2812. 크게 만들기(python)

얄루몬 2023. 6. 23. 16:26
# stack이 있나 확인하고 해당 값이 다음 값보다 크면 넣고 작으면 뺴고

n, k = map(int,input().split())
li = list(input())
stack = []

for i in li:
    while stack and stack[-1] < i and k > 0:
        stack.pop()
        k -= 1
    stack.append(i)
if k > 0:
    print(''.join(stack[:-k]))
else:
    print(''.join(stack))

 

[문제 해설]

  • 1924를 예시로 생각해보자

 

해당 K를 충족하지 못한다면 해당 개수만큼 stack에서 뺀 숫자를 돌려주면 된다.

까다롭지 않은 조건이라 어렵지 않은 stack 문제이다.