[백준/C++] 5397번 키로거
2021. 3. 19. 19:28ㆍ알고리즘/구현
728x90
반응형
문제: www.acmicpc.net/problem/5397
5397번: 키로거
첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한줄로 이루어져 있고, 강산이가 입력한 순서대로 길이가 L인 문자열이 주어진다. (1 ≤ L의 길이 ≤ 1,000,000) 강산이가 백스페이
www.acmicpc.net
문제풀이
C++ STL list iterator를 이용하여 문제를 풀었다.
코드
#include <iostream>
#include <list>
using namespace std;
int main(){
ios::sync_with_stdio(false); cin.tie(NULL);
int T;
cin>>T;
list<char> l;
while(T--){
string str;
cin>>str;
list<char>::iterator cursor = l.begin();
for(auto c : str){
if(c == '<'){
if(cursor != l.begin()){
cursor--;
}
}
else if(c == '>'){
if(cursor != l.end()){
cursor++;
}
}
else if(c == '-'){
if(!l.empty()&&cursor != l.begin())
cursor = l.erase(--cursor);
}
else{
l.insert(cursor, c);
}
}
for(auto c : l)
cout<<c;
l.clear();
cout<<"\n";
}
return 0;
}
결과

728x90
반응형
'알고리즘 > 구현' 카테고리의 다른 글
[백준/C++] 1021번 회전하는 큐 (0) | 2021.03.21 |
---|---|
[백준/C++] 2493번 탑 (0) | 2021.03.20 |
[백준/C++] 1927번 최소 힙 (0) | 2021.03.11 |
[백준/C++] 18870번 좌표 압축 (0) | 2021.02.26 |
[백준/C++] 11279번 최대 힙 (0) | 2021.02.25 |