[알각코] 인프런 5-1 가장 큰 수

가장 큰 수

문제 정보는 인프런의 파이썬 알고리즘 문제풀이 코딩테스트에 있습니다!

문제풀이

이 문제는 스택을 이용한 문제풀이이다.

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)