728x90
문제
https://school.programmers.co.kr/learn/courses/30/lessons/42883
풀이
스택을 이용합니다.
number에 들어있는 숫자를 하나씩 확인하며 스택의 top에 있는 값이 현재 숫자보다 작으면 계속해서 카운트를 세며 스택에서 pop() 시킵니다.
주어진 숫자가 내림차순으로 정렬되어 주어질 경우도 있기 때문에 스택을 join() 한 값에 k개를 뺀 만큼 슬라이싱 합니다.
코드
파이썬
def solution(number, k):
stack = []
cnt = 0
for x in number:
while cnt < k and stack and int(stack[-1]) < int(x):
stack.pop()
cnt += 1
stack.append(x)
return ''.join(stack)[:len(number)-k]
728x90
'🚩 코딩테스트 > 알고리즘' 카테고리의 다른 글
[백준] 15591번: MooTube (Silver) (0) | 2023.02.14 |
---|---|
[프로그래머스] 미로 탈출 명령어 (0) | 2023.02.02 |
[백준] 2630번: 색종이 만들기 (0) | 2022.11.05 |
[백준] 12100번: 2048 (Easy) (1) | 2022.10.07 |
[프로그래머스] 모음 사전 (0) | 2022.09.27 |