https://www.acmicpc.net/problem/5397
5397번: 키로거
첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한줄로 이루어져 있고, 강산이가 입력한 순서대로 길이가 L인 문자열이 주어진다. (1 ≤ L ≤ 1,000,000) 강산이가 백스페이스를 입
www.acmicpc.net
두개의 스택을 이용해 스택의 top을 커서로 생각하고 구현하는 문제다.
#include <iostream>
#define fio cin.tie(0)->sync_with_stdio(0)
using namespace std;
#include <stack>
int main(){
fio;
int TC; cin >> TC;
for(int tc = 1; tc <= TC; tc++){
stack<char> left, right;
string S; cin >> S;
for(int i=0; i <S.size(); i++){
char now = S[i];
if(now == '-'){
if(!left.empty()){//지울 것이 있는 경우
left.pop();
}
}else if(now =='<'){
if(!left.empty()){//뭐가 있는 경우
right.push(left.top());
left.pop();
}
}else if(now =='>'){
if(!right.empty()){//뭐가 있는 경우
left.push(right.top());
right.pop();
}
}else{
left.push(now);
}
}
//
while(!left.empty()){
right.push(left.top());
left.pop();
}
while(!right.empty()){
cout << right.top();
right.pop();
}
cout <<'\n';
}
return 0;
}
'알고리즘 > 백준' 카테고리의 다른 글
백준 18241 문자열 게임 (0) | 2021.12.26 |
---|---|
백준 20001 고무오리 디버깅 (0) | 2021.12.26 |
백준 3111 검열 (0) | 2021.12.26 |
백준 2841 외계인의 기타 연주 (0) | 2021.12.26 |
백준 5964 Best Parenthesis (0) | 2021.12.26 |