문제
문제 바로가기> BOJ 2812번: 크게 만들기
풀이
큰 수를 만났을 때, 현재 수보다 작은 수가 앞에 있다면 해당 수를 지우기 위해 스택을 이용하였다!
#include<iostream>
#include<deque>
using namespace std;
int N, K;
string str;
deque<char> s;
void input(){
cin >> N >> K;
cin >> str;
}
void solve(){ // 숫자 K개를 지워서 얻을 수 있는 가장 큰 수
for(char c : str){
while(!s.empty() && s.back()<c && K){
s.pop_back();
K--;
}
s.push_back(c);
}
while(K--) s.pop_back();
}
void output(){
for(char c : s) cout << c;
}
int main(){
ios_base::sync_with_stdio(0); cin.tie(0);
input();
solve();
output();
}
'문제 풀이 > 백준' 카테고리의 다른 글
BOJ 1477번: 휴게소 세우기 (0) | 2024.02.11 |
---|---|
BOJ 2933번: 미네랄 (0) | 2024.01.31 |
BOJ 6549번: 히스토그램에서 가장 큰 직사각형 (1) | 2024.01.30 |
BOJ 8980번: 택배 (0) | 2024.01.25 |
BOJ 1963번: 소수 경로 (1) | 2024.01.21 |