백준(BOJ) 5397 : 키로거
BOJ
2020. 6. 6. 23:28
https://www.acmicpc.net/problem/5397
5397번: 키로거
문제 창영이는 강산이의 비밀번호를 훔치기 위해서 강산이가 사용하는 컴퓨터에 키로거를 설치했다. 며칠을 기다린 끝에 창영이는 강산이가 비밀번호 창에 입력하는 글자를 얻어냈다. 키로거�
www.acmicpc.net
C++의 STL list를 이용하여 해결 가능한 문제이다.
iterator를 이용해 해결하자.
아래는 소스코드이다.
더보기
#include <bits/stdc++.h>
#define endl '\n'
#define pb push_back
#define mp make_pair
#define MOD 998244353
#define cont continue
#define rep(i, n) for(int i = 0 ; i < (n) ; i++)
using namespace std;
typedef long long ll;
typedef pair<int,int> pii;
typedef pair<ll,ll> pll;
const ll INF = 987654321;
int T;
int ans = 0;
int main() {
cin.tie(NULL);
ios_base::sync_with_stdio(false);
cin >> T;
for(int i = 0 ; i < T ; i++) {
string s;
cin >> s;
list<char> lis;
auto iter = lis.begin();
for(int j = 0 ; j < s.size() ; j++) {
if(s[j] == '<') {
if(iter == lis.begin()) {
}
else iter--;
}
else if(s[j] == '>') {
if(iter == lis.end()) {
}
else iter++;
}
else if(s[j] == '-') {
if(lis.size() == 0 || iter == lis.begin()) continue;
iter = lis.erase(--iter);
}
else {
iter = lis.insert(iter, s[j]);
iter++;
}
}
for(auto x : lis) {
cout << x;
}
cout << endl;
}
}
'BOJ' 카테고리의 다른 글
백준(BOJ) 9660 : 돌 게임 6 (0) | 2020.06.18 |
---|---|
백준(BOJ) 1005 : ACM Craft (0) | 2020.06.16 |
백준(BOJ) 1799 : 비숍 (0) | 2020.06.16 |
백준(BOJ) 1766 : 문제집 (0) | 2020.06.16 |
백준(BOJ) 1238 : 파티 (0) | 2020.06.08 |