매일 조금씩

[C++] 프로그래머스 : 큰 수 만들기 본문

알고리즘/그리디

[C++] 프로그래머스 : 큰 수 만들기

mezo 2021. 2. 2. 00:27
728x90
반응형

#include <string>
#include <vector>
#include <stack>
#include <algorithm>

using namespace std;

string solution(string number, int k) {
    
    stack<char> st;
    int size = number.length() - k;
    for(int i = 0; i < number.length(); i++){
        char num = number[i];
        while(!st.empty()&&k>0){
            if(st.top() < num ){
                st.pop();
                k--;
            }
            else{
                break;
            }
        }
        st.push(num);
    }
    
    while(st.size() != size){
        st.pop();
    }
    
    string answer = "";
    while(!st.empty()){
        answer += st.top();
        st.pop();
    }
    
    reverse(answer.begin(), answer.end());
    
    
    return answer;
}
728x90
반응형