알고리즘/프로그래머스

[탐욕법(Greedy)] 큰 수 만들기

래울 2021. 10. 9. 18:13

https://programmers.co.kr/learn/courses/30/lessons/42883

 

코딩테스트 연습 - 큰 수 만들기

 

programmers.co.kr

 

뭔가 좋은 방법이 잘 생각안나서, 구글링의 도움을 받았다.

앞자릿수가 커야 큰 숫자가 된다는 것과 스택을 활용하면 된다.

def solution(number, k):
    stack = []
    for i in number:
        while stack and i > stack[-1]:  #넣으려고 하는 값이 더 클 때
            if k > 0:
                stack.pop()
                k -= 1
            else:
                break
        stack.append(i)
    for i in range(k):
        stack.pop()
    return "".join(stack)