https://www.acmicpc.net/problem/5430
이 문제 쉬웠는데 억울한 문제였다.
코드 제일 마지막 부분에 cout << "\n"; 이 있는데 이게 없으면 아예 틀렸다고 나온다.
이거 때문에 헤맸다.
출력과 관련해서 한 줄을 띄워야한다던데 명확한 기준이 있었으면 좋았을거 같다.
#include <iostream>
#include <deque>
#include <string>
#include <algorithm>
using namespace std;
int testCase;
deque<int> d;
string ACS, arrString;
int arrCount;
int main()
{
ios_base::sync_with_stdio();
cin.tie(0); cout.tie(0);
cin >> testCase;
for (int t = 0; t < testCase; t++) {
d.clear();
cin >> ACS;
cin >> arrCount;
cin >> arrString;
int num=0;
for (int i = 0; i < arrString.size(); i++) { //deque에 숫자 넣기
if (arrString[i] == '[' || arrString[i] == ']') continue;
if (arrString[i] == ',') {
d.push_back(num);
num = 0;
}
else {
num = num * 10 + arrString[i] - '0';
}
}
if (num != 0) {
d.push_back(num);
}
bool isError = false, isReverse = false;
for (int i = 0; i < ACS.size(); i++) {
if (ACS[i] == 'R') {
if (isReverse) isReverse = false;
else isReverse = true;
}
else if(ACS[i] == 'D') { //D
if (d.empty()) {
isError = true;
break;
}
if (isReverse) {
d.pop_back();
}
else {
d.pop_front();
}
}
}
if (isReverse && !isError) {
reverse(d.begin(), d.end());
}
if (isError) {
cout << "error";
}
else {
cout << "[";
for (int i = 0; i < d.size(); i++) {
if (i == d.size() - 1) {
cout << d[i];
}
else {
cout << d[i] << ",";
}
}
cout << "]";
}
cout << "\n";
}
}
'백준 문제 풀이 & C++ 공부' 카테고리의 다른 글
백준 1202 C++ (0) | 2024.06.21 |
---|---|
백준 1062 C++ (1) | 2024.06.06 |
백준 14391 C++ (0) | 2024.05.30 |
백준 C++ 2234번 (0) | 2024.05.13 |
백준 14890 C++ (1) | 2024.04.27 |