N자리 숫자가 주어졌을 때, 여기서 숫자 K개를 지워서 얻을 수 있는 가장 큰 수를 구하는 프로그램을 작성하시오.
4 2
1924 -> 94
n, k = map(int, input().split())
num = input()
stack = list()
cnt = 0
stack.append(int(num[0]))
for i in range(1, len(num)):
while stack and stack[-1] < int(num[i]) and cnt < k:
stack.pop()
cnt += 1
stack.append(int(num[i]))
while cnt < k:
stack.pop()
cnt += 1
for a in stack:
print(a, end='')
입력된 수의 가장 큰 자리 수 부터 스택에 저장하면서 i번째의 수가 스택의 최상단의 수보다 크지 않을 때까지 최대 k번 반복하고 아니라면 스택에 저장해준다.
반복문이 끝나고 아직 빼야하는 숫자가 남아 있을경우 마저 pop해주고 스택에 남아있는 숫자들을 출력해준다.