문제

접근 방식
- 리스트 자료구조를 활용하여 앞에서 부터 숫자를 비교해가며 [리스트에 저장 된 값 < 새롭게 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)
'프로그래머스' 카테고리의 다른 글
| [프로그래머스] lv2. 연속된 부분 수열의 합 - Python (0) | 2023.06.05 |
|---|---|
| [프로그래머스] 2022 KAKAO TECH INTERNSHIP 두 큐 합 같게 만들기 - Python (0) | 2023.05.30 |
| [프로그래머스] 땅 따먹기 - Python (0) | 2023.02.27 |
| [프로그래머스] 2xn 타일링 - Python (0) | 2023.01.16 |
| [프로그래머스] 최솟값 만들기 - Python (0) | 2023.01.16 |