문제
접근 방식
•
리스트 자료구조를 활용하여 앞에서 부터 숫자를 비교해가며 [리스트에 저장 된 값 < 새롭게 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)
Python
복사