# 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 문제이다.
'문제풀이 > 백준(Boj) 문제풀이' 카테고리의 다른 글
[백준] - 14675. 단절점과 단절선 성공 (0) | 2023.09.05 |
---|---|
[백준] - 11725.트리의 부모찾기 (0) | 2023.09.04 |
[백준] - 1320. 베스트셀러(python) (0) | 2023.06.08 |
[백준] - 1463. 1로 만들기(python) / bottom up 방식 (0) | 2023.06.07 |
[백준] - 1463. 1로 만들기(python) (2) | 2023.06.06 |