본문 바로가기

파이썬 알고리즘 풀이

32)가장 큰 수

문제

숫자 하나가 주어졌을 때, 해당 숫자의 자릿수들 중 m개의 숫자를 제거하여 가장 큰 수를 만들기

 

조건

만약 5276823 이 주어지고 3개의 자릿수를 제거한다면 7823이 가장 큰 숫자가 됩니다.

 

제한사항

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

가장 큰 수를 출력합니다.

 

문제풀이

N, M=map(int, input().split())
num=list(map(int, str(N)))
stack=[]

for x in num:
  while stack and M>0 and stack[-1]<x:
    stack.pop()
    M-=1
  stack.append(x)

if M!=0:
  stack=stack[:-M]

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

'파이썬 알고리즘 풀이' 카테고리의 다른 글

34)후위표기식 만들기  (0) 2021.11.01
33)쇠막대기  (0) 2021.10.31
31)역수열  (0) 2021.10.31
30)증가수열 만들기  (0) 2021.10.31
29)침몰하는 타이타닉  (0) 2021.10.28