가능한 만큼(k개) 가장 큰 숫자 앞까지 자른다. 자를 경우 1개씩 k를 감소시켜준다. 구한 가장 큰 자리 수를 다른 곳에 담아두고, 그 이후부터 다시 k가 없을 때까지 반복한다. 12번 케이스에서 런타임 에러가 아지 않으려먼 일단 답을 구하고 정확히 자른 자리수까지 넣어 주어야 한다.
def solution(number, k):
number = [int(x) for x in number]
result = []
length = len(number)
while k and number:
idx = number.index(max(number[:k+1]))
for _ in range(idx):
number.pop(0)
k -= 1
result.append(number.pop(0))
result += number
result = ''.join([str(x) for x in result])
return result[:length - k]
def solution(number, k):
result = []
for num in number:
while k and result and result[-1] < num:
result.pop(-1)
k -= 1
result.append(num)
return ''.join(result[:len(number)-k])