
def solution(number, k):
stack = [] #그리디 방식으로 만들어진 숫자가 저장될 배열이다
for num in number: #number로 입력받은 숫자들을 앞에서부터 하나씩 확인한다
#while문에서 스택의 마지막 숫자가 num보다 크다면 스택을 pop하고 num을 넣는다.
#이때 제한된 횟수인 k가 감소한다.
while (stack and k > 0) and (stack[-1] < num):
stack.pop()
k -= 1;
stack.append(num)
#만약 k가 0보다 클 경우 스택의 뒷부분을 잘라내서 그리디 방식의 조건을 충족한다
if k>0:
stack = stack[:-k]
#숫자들을 다시 문자열로 만든다
return ''.join(stack)

'C언어' 카테고리의 다른 글
| 2025년 1학기 8주차 C언어 (0) | 2025.05.25 |
|---|---|
| 2025년 1학기 7주차 C언어 (0) | 2025.05.17 |
| 2025년 C언어 5주차 추가 (0) | 2025.05.01 |
| 2025년 1학기 C언어 5주차 (0) | 2025.04.30 |
| 2025년 C언어 5주차(추가) 1학기 (0) | 2025.04.11 |