5430번 - AC
#include #include #include
using namespace std;
int main() { char func[100001] = { 0, }; char arr[300102] = { 0, }; int T, N; char c; int count = 0, check = 0; int front, back;
cin >> T;
for (int i = 0; i < T; i++) {
count = 0; check = 0; cin >> func >> N; cin >> arr;
front = 1; back = strlen(arr)-2;
for (int j = 0; func[j] != '\0' ; j++) { if (func[j] == 'D') { count++; } }
if (count > N) { cout << "error" << endl; continue; }
for (int j = 0; func[j] != '\0'; j++) { if (func[j] == 'R') { check++; } else if (func[j] == 'D') { if (check % 2 == 0) {
while (arr[front] != ',') { front++; }
front++; } else { while (arr[back] != ',') { back--; } back--; } } }
cout << '['; if (check % 2 == 0) { for (int j = front; j <=back; j++) { cout << arr[j]; } } else { for (int j = back; j>=front; j--) { cout << arr[j]; } } cout << ']' << endl;
}}
코드는 글 쓰기 하단의 <소스>에 올려 주세요. 지금 글은 가독성이 너무 떨어지네요..
댓글을 작성하려면 로그인해야 합니다.
b183523 5년 전
#include
#include
#include
using namespace std;
int main() {
char func[100001] = { 0, };
char arr[300102] = { 0, };
int T, N;
char c;
int count = 0, check = 0;
int front, back;
cin >> T;
for (int i = 0; i < T; i++) {
count = 0;
check = 0;
cin >> func >> N;
cin >> arr;
front = 1;
back = strlen(arr)-2;
for (int j = 0; func[j] != '\0' ; j++) {
if (func[j] == 'D') {
count++;
}
}
if (count > N) {
cout << "error" << endl;
continue;
}
for (int j = 0; func[j] != '\0'; j++) {
if (func[j] == 'R') {
check++;
}
else if (func[j] == 'D') {
if (check % 2 == 0) {
while (arr[front] != ',') {
front++;
}
front++;
}
else {
while (arr[back] != ',') {
back--;
}
back--;
}
}
}
cout << '[';
if (check % 2 == 0) {
for (int j = front; j <=back; j++) {
cout << arr[j];
}
}
else {
for (int j = back; j>=front; j--) {
cout << arr[j];
}
}
cout << ']' << endl;
}
}