가장 큰 수/Python/파이썬/자료구조/스택

heeee·2021년 1월 17일
0

algorithm

목록 보기
51/123

💡문제

선생님은 현수에게 숫자 하나를 주고, 해당 숫자의 자릿수들 중 m개의 숫자를 제거하
여 가장 큰 수를 만들라고 했습니다. 여러분이 현수를 도와주세요.(단 숫자의 순서는
유지해야 합니다)
만약 5276823 이 주어지고 3개의 자릿수를 제거한다면
7823이 가장 큰 숫자가 됩니다.

입력

첫째 줄에 숫자(길이는 1000을 넘지 않습니다)와 제가해야할 자릿수의 개수가 주어집니다.

출력

가장 큰 수를 출력합니다.


예제입력

5276823 3

예제출력

7823

📖내가 작성한 code

num,n=map(int,input().split())
num=list(map(int,str(num)))

stack=[]

for x in num:
    while n>0:
        if len(stack)==0:
            break
        elif stack[-1]<x:
            stack.pop()
            n-=1
        else:
            break
    stack.append(x)

if n>0:
    stack=stack[:-n]

print(''.join(map(str,stack)))

0개의 댓글