https://www.acmicpc.net/problem/17413
★학교 시험때도 냈던 문제 (C언어로 했을 때보다 C++로 하는게 더 어려운 이상한 문)
##문제 풀기 전 내가 알고 있었어야 할 개념:
- 결과 문자열을 저장할 자료구조를 char 문자열이 아닌 Vector<char>로 함(c언어와 다르게)
- 나의 답이 Chat gpt의 답과 다를게 없는 논리 구조
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
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
|
#include <iostream>
#include <deque>
#include <vector>
#include <string>
using namespace std;
void init() {
ios::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
}
int main() {
init();
string input;
vector <char> V;
deque <char> DQ;
bool sign = false;
int len = 0;
getline(cin, input, '\n');
for (int i = 0; i < input.length(); i++) {
char c = input[i];
if (c == '<') {
while (!DQ.empty()) {
V.push_back(DQ.back());
DQ.pop_back();
}
sign = true;
V.push_back(c);
continue;
}
if (sign) {//<>
if(c=='>') sign = false;
V.push_back(c);
continue;
}
else {
if (c != ' ') {
DQ.push_back(c);
}
else {
while (!DQ.empty()) {
V.push_back(DQ.back());
DQ.pop_back();
}
V.push_back(c);
continue;
}
}
}
if (!DQ.empty()) {
if (sign) {
while (!DQ.empty()) {
V.push_back(DQ.front());
DQ.pop_front();
}
}
else {
while (!DQ.empty()) {
V.push_back(DQ.back());
DQ.pop_back();
}
}
}
for (int i = 0; i < V.size(); i++) {
cout << V[i];
}
return 0;
}
|
cs |
'백준(C++) > 자료구조1' 카테고리의 다른 글
[BOJ/C언어]1935번_후위 표기식2 (0) | 2024.07.18 |
---|---|
[BOJ/C++]17299_오등큰수(작성중) (2) | 2024.07.17 |
[BOJ/C++]17298_오큰수 (작성중..) (2) | 2024.07.15 |
[BOJ/C++]10799_쇠막대기 (0) | 2024.07.13 |
[BOJ/C++]9093번_단어뒤집기 (0) | 2024.07.11 |