def solution(number, k):
answer = []
cnt = 0
for n in number:
while answer and cnt < k and answer[-1] < n:
answer.pop()
cnt += 1
answer.append(n)
return ''.join(answer)
number에서 하나씩 answer 배열에 집어넣을 때 배열에 더 작은 값이 있으면 없을때까지 pop()
pop 횟수를 k와 같을때까지 위 작업 반복
테스트 케이스 하나가 틀려서 91.7점
for문을 빠져나왔을 때 cnt < k 인 경우가 발생할 수 있다.
따라서 for문 뒤에 밑의 코드를 추가해줌
while cnt < k:
answer.pop()
cnt += 1
def solution(number, k):
stack = [number[0]]
for num in number[1:]:
while len(stack) > 0 and stack[-1] < num and k > 0:
k -= 1
stack.pop()
stack.append(num)
if k != 0:
stack = stack[:-k]
return ''.join(stack)
cnt 변수를 추가하지 않고 k변수를 하나씩 줄여나가는 방식으로 하였다
for num in number[1:]
1번 인덱스부터 for .. in 구문 사용하는 법