from itertools import combinations
def solution(number,k):
answer=''
max_num=0
lst=list(combinations(number,len(number)-k))
for i in lst:
max_num=max(max_num,int(''.join(i)))
answer=str(max_num)
return answer
# 틀린 풀이. 시간초과
def solution(number, k):
# 빈 스택 생성
stack = []
for num in number:
# 스택의 top이 number의 다음 숫자보다 작으면 pop & k-1
while stack and stack[-1] < num and k > 0:
k -= 1
stack.pop()
stack.append(num)
# k개까지 제거되지 않았을 경우에는 그만큼 내림차순 정렬된 것이므로
# 뒤에서부터 잘라도 된다
if k != 0:
stack = stack[:-k]
return ''.join(stack)