본문 바로가기
프로그래머스

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

by whereisco 2023. 3. 29.

문제

lv2. 큰 수 만들기

접근 방식

  • 리스트 자료구조를 활용하여 앞에서 부터 숫자를 비교해가며 [리스트에 저장 된 값 < 새롭게 append() 되는 수] 인 경우를 만족하는 수들을 리스트에서 제거하면 된다.
  • 제거 횟수가 k개로 지정되어 있으므로, k개 만큼 제거 되었을 때 반복문을 탈출하도록 구현한다.
  • 마지막으로, 스택을 활용해 만들어준 가장 큰 숫자를 문자열 형태로 return 해야 하므로 k의 개수에 따라 조건을 설정하여 문자열 형태로 표현되도록 한다.

코드

def solution(number, k):
    stack=[]
    
    for i in number:
        while stack and k>0 and stack[-1] < i:
            stack.pop()
            k-=1
        stack.append(i)
    return ''.join(stack[:-k] if k>0 else stack)