가장 큰 수
문제 정보는 인프런의 파이썬 알고리즘 문제풀이 코딩테스트에 있습니다!
문제풀이
이 문제는 스택을 이용한 문제풀이이다.
import sys
sys.stdin = open("input.txt", "rt")
num, m = map(int, input().split())
num = list(map(int, str(num)))
stack = []
for x in num:
# stack리스트가 있고, m이 0보다 크고, stack 마지막 요소가 x보다 작으면
while stack and m > 0 and stack[-1]<x:
# stack 마지막 요소를 빼고 m-1한다.
stack.pop()
m-=1
# stack에 추가한다.
stack.append(x)
# m이 0이 아니면
if m!=0:
# stack 맨 끝에 추가한다.
stack=stack[:-m]
res = ''.join(map(str, stack))
print(res)