[Lv 2]大きな数を作成


質問する


リンク

に答える

def solution(number, k):
    # k가 숫자 개수 -1일 때
    if k == len(number) - 1 :
        num = list(number)
        return max(num)
    # k가 1일 때
    if k == 1 :
        num = list(number)
        num.remove(min(num))
        return ''.join(num)
    # 스택 사용
    answer = []
    for n in number 
        while True :
            # 맨 처음 숫자이거나 배열에 들어있던 수를 pop했을 때, k가 0일 때
            if k == 0 or len(answer) == 0:
                break
            # 이전에 넣은 수가 현재 수보다 작으면 빼주기
            if answer[-1] < n :
                answer.pop()
                k-=1
            else :
                break
        answer.append(n)
    return ''.join(answer)