백준 2812번과 같은 문제다. https://www.acmicpc.net/problem/2812
백준에서는 골드 3으로 랭킹되어있지만 프로그래머스는 어째서인지 레벨 2다.
https://school.programmers.co.kr/learn/courses/30/parts/12244
def solution(number, k):
stack = []
for n in number:
while stack and stack[-1] < n and k > 0:
stack.pop()
k -= 1
stack.append(n)
if k > 0:
return ''.join(stack[:-k])
return ''.join(stack)
#include <string>
#include <vector>
#include <iostream>
using namespace std;
string solution(string number, int k) {
string answer = "";
answer = number.substr(k);
for(int i = k-1;i >=0;i--){
int j = 0;
do{
if(number[i] >= answer[j]){
char temp = answer[j];
answer[j] = number[i];
number[i] = temp;
j++;
}else{
break;
}
}while(1);
}
return answer;
}