티스토리 뷰
문제
문제 이해 자체는 어렵지 않다. 우리가 키보드를 칠 때 Home키 누르면 입력중인 text의 맨 앞으로 cursor가 이동하고 End키를 누르면 입력중인 text의 맨 뒤로 cursor가 가게 되는데, 이를 [와]로 표현한 Text가 있는 것이다.
따라서 문자를 하나하나 읽으면서 [와 ]이 나올때마다 cursor의 위치를 바꿔야 하는데 이것을 하는 데는 list가 제격인 자료구조다. 풀이는 다음과 같다.
#include<iostream>
#include<algorithm>
#include<list>
using namespace std;
int main() {
string str;
while (cin >> str&&!cin.eof()) {
list<char> result;
list<char>::iterator cursor;
cursor = result.begin();
for (int i = 0; i < str.length(); i++) {
if (str[i] == '[') cursor = result.begin();
else if (str[i] == ']') cursor = result.end();
else {
result.insert(cursor, str[i]);
}
}
for (list<char>::iterator i = result.begin(); i != result.end(); i++) {
cout << *i;
}
cout << endl;
}
return 0;
}
이 부분이 핵심이다. list의 insert는 현재 iterator의 앞에 삽입한다는 것을 유념하자
if (str[i] == '[') cursor = result.begin();
else if (str[i] == ']') cursor = result.end();
else {
result.insert(cursor, str[i]);
}
'기초 알고리즘 문제 풀이' 카테고리의 다른 글
21. Uva-11286 Conformity (0) | 2020.02.22 |
---|---|
20. UVa-1062 (0) | 2020.02.22 |
18. Uva-11933 Splitting Numbers (0) | 2020.02.21 |
17. UVa-11926 Multitasking (0) | 2020.02.21 |
16. UVa-10264 The most potent Corner // XOR연산의 의미 (0) | 2020.02.21 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- 매트랩 함수
- Logistic Regression
- 머신 러닝
- 컴퓨터과학
- 연속 신호
- 영상구조
- RGB이미지
- Andrew ng
- ML
- rnn
- 신호 및 시스템
- 자연어 처리
- Neural Network
- CS
- 밑바닥부터 시작하는 딥러닝
- gradient descent
- 매트랩
- 순환 신경망
- 인덱스 이미지
- 영상처리
- 이미지처리
- 사진구조
- 머신러닝
- 딥러닝
- NLP
- 이산 신호
- 컴퓨터 과학
- 신경망
- CNN
- 이미지
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
글 보관함