티스토리 뷰
반응형
https://www.acmicpc.net/problem/5397
- 문제 해결 방법
스택2개 또는 리스트를 이용하여 해결 할 수 있는 문제입니다.
리스트를 이용하여 원소를 삽입, 삭제하는것 보다 스택2개를 이용하여 해결하는 것이 더 빠른 방법이지만
리스트를 활용해 봤습니다.
리스트의 erase를 사용할때 반복자가 가리키는 원소가 없어지기 때문에 반복자가 참조할 위치를 변경해 주어야 합니다.
- C++ 전체 코드
#include<bits/stdc++.h>
using namespace std;
int N;
int main(){
ios_base::sync_with_stdio(0);
cin.tie(0);
cin>>N;
while(N--) {
string str;
cin>>str;
list<char> lt;
auto cursor = lt.begin();
for(int i=0; i<str.size(); i++) {
char ch = str[i];
if(ch == '-'){
if (cursor != lt.begin()) lt.erase((--cursor)++);
} else if(ch == '<'){
if (cursor != lt.begin()) cursor--;
} else if(ch == '>'){
if (cursor != lt.end()) cursor++;
} else {
lt.insert(cursor, ch);
}
}
for (auto ch : lt) cout<<ch;
cout<<'\n';
}
}
반응형
'알고리즘 공부 > 문제풀이' 카테고리의 다른 글
백준 21277번 - 짠돌이 호석 (0) | 2021.05.18 |
---|---|
백준 16174번 - 점프왕 쩰리 (Large) (0) | 2021.05.18 |
백준 15806번 - 영우의 기숙사 청소 (0) | 2021.05.18 |
백준 20549번 - 인덕이의 고민 (0) | 2021.05.16 |
백준 9997번 - 폰트 (0) | 2021.05.11 |
댓글