- 스택에 원소가 존재하고 마지막 원소가 순회하는 i보다 작고 k가 0보다 크면
pop
을 이용해서 마지막 원소를 빼고 k를 1줄인다.- while문이 종료하면
append
로 스택에 순회하는 i를 추가한다.- k가 0이 아니면 k개수를 뺀 나머지를 스택에 저장한다.
join
을 이용해서 stack을 이어붙인다.
# 프로그래머스 Lv2 - 큰 수 만들기
# 문제링크: https://programmers.co.kr/learn/courses/30/lessons/42883
def solution(number,k):
stack = []
for i in number:
while len(stack)>0 and stack[-1]<i and k>0:
stack.pop()
k -= 1
stack.append(i)
if k != 0:
stack = stack[:-k]
return ''.join(stack)
스택을 인프런 강의를 통해서 배운적이 있는데 이렇게 문제에 적용해서 풀어본적은 처음인 것 같다. 자료구조가 중요한 것을 다시 한 번 깨닫게 되었다.