Algorithm/프로그래머스

[프로그래머스/Python] 큰 수 만들기 - Level2

poppy 2021. 6. 14. 16:48
반응형

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

 

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

 

programmers.co.kr

def solution(number, k):
    num = []
    
    for n in number:
        
        while num and n > num[-1] and k > 0:
            k -= 1
            num.pop()
        
        num.append(n)
        
    if k != 0:
        num = num[:-k]
        
    return ''.join(num)

입력받은 number에서 큰 수만을 뽑아야 하므로 큰 수를 담을 num 리스트를 생성한다. for문을 통해 number배열을 돌면서 num에 큰 수만을 담는다. while문을 통해 num에 담긴 숫자보다 현재 숫자가 크면 현재 숫자보다 큰 숫자만 담길 때까지 num.pop()을 한다. 현재 숫자보다 작은 숫자들을 다 뺐으면 현재 숫자를 num에 담는다. number에서 큰 수만을 담은 후 number이 충분히 제거되지 못했다면 제거되지 못한 개수만큼 num에서 삭제한다. 어차피 num에 앞에서부터 큰 숫자만으로 채웠으므로 끝에 숫자들을 삭제해도 괜찮다.

반응형