[伯俊]5430号:AC
回答日:2021-09-22
質問する
質問する
質問リンク:https://www.acmicpc.net/problem/5430
アクセスと解析
体現はあまり難しくない問題だ.
ただし、最初に入力した数字をグループ化し、ベクトルに入れます.
そして、「R」命令が入ると、reverse関数を使用してベクトルが反転するたびに、この部分がタイムアウトしたようです.
要素を前方、後方、ポップアップできるdequeを用いて問題を解決した.
コード(タイムアウト) // 백준 5430번 : AC
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int T, n;
string p, arr;
vector<int> v;
cin >> T;
while (T--) {
cin >> p >> n >> arr;
string tmp = "";
for (int i = 0; i < arr.length(); i++) {
char ch = arr[i];
if (isdigit(ch)) {
tmp += ch;
} else {
if (tmp.length() != 0) {
v.push_back(stoi(tmp));
tmp = "";
}
}
}
bool errFlag = false;
for (char ch : p) {
if (ch == 'R') {
reverse(v.begin(), v.end());
} else if (ch == 'D') {
if (!v.empty()) {
v.erase(v.begin());
} else {
cout << "error" << '\n';
errFlag = true;
break;
}
}
}
if (!errFlag) {
cout << "[";
for (int i = 0; i < v.size(); i++) {
if (i != v.size() - 1) {
cout << v[i] << ",";
} else {
cout << v[i];
}
}
cout << "]\n";
}
v.clear();
}
return 0;
}
コード(通過) // 백준 5430번 : AC
#include <iostream>
#include <deque>
#include <algorithm>
using namespace std;
int main() {
int T, n;
string p, arr;
cin >> T;
while (T--) {
cin >> p >> n >> arr;
deque<int> dq;
bool reversed = false;
string tmp = "";
for (int i = 0; i < arr.length(); i++) {
char ch = arr[i];
if (isdigit(ch)) {
tmp += ch;
} else {
if (tmp.length() != 0) {
dq.push_back(stoi(tmp));
tmp = "";
}
}
}
bool errFlag = false;
for (char ch : p) {
if (ch == 'R') {
reversed = !reversed;
} else if (ch == 'D') {
if (!dq.empty()) {
if (reversed) {
dq.pop_back();
} else {
dq.pop_front();
}
} else {
cout << "error" << '\n';
errFlag = true;
break;
}
}
}
if (!errFlag) {
cout << "[";
if (dq.size() > 0) {
if (reversed) {
while (dq.size() > 1) {
cout << dq.back() << ",";
dq.pop_back();
}
cout << dq.back();
} else {
while (dq.size() > 1) {
cout << dq.front() << ",";
dq.pop_front();
}
cout << dq.front();
}
}
cout << "]\n";
}
}
return 0;
}
結果
フィードバック
問題の入力制限事項もよくチェックしてください.
Reference
この問題について([伯俊]5430号:AC), 我々は、より多くの情報をここで見つけました
https://velog.io/@bestcoders/백준-5430번-AC
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
体現はあまり難しくない問題だ.
ただし、最初に入力した数字をグループ化し、ベクトルに入れます.
そして、「R」命令が入ると、reverse関数を使用してベクトルが反転するたびに、この部分がタイムアウトしたようです.
要素を前方、後方、ポップアップできるdequeを用いて問題を解決した.
コード(タイムアウト) // 백준 5430번 : AC
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int T, n;
string p, arr;
vector<int> v;
cin >> T;
while (T--) {
cin >> p >> n >> arr;
string tmp = "";
for (int i = 0; i < arr.length(); i++) {
char ch = arr[i];
if (isdigit(ch)) {
tmp += ch;
} else {
if (tmp.length() != 0) {
v.push_back(stoi(tmp));
tmp = "";
}
}
}
bool errFlag = false;
for (char ch : p) {
if (ch == 'R') {
reverse(v.begin(), v.end());
} else if (ch == 'D') {
if (!v.empty()) {
v.erase(v.begin());
} else {
cout << "error" << '\n';
errFlag = true;
break;
}
}
}
if (!errFlag) {
cout << "[";
for (int i = 0; i < v.size(); i++) {
if (i != v.size() - 1) {
cout << v[i] << ",";
} else {
cout << v[i];
}
}
cout << "]\n";
}
v.clear();
}
return 0;
}
コード(通過) // 백준 5430번 : AC
#include <iostream>
#include <deque>
#include <algorithm>
using namespace std;
int main() {
int T, n;
string p, arr;
cin >> T;
while (T--) {
cin >> p >> n >> arr;
deque<int> dq;
bool reversed = false;
string tmp = "";
for (int i = 0; i < arr.length(); i++) {
char ch = arr[i];
if (isdigit(ch)) {
tmp += ch;
} else {
if (tmp.length() != 0) {
dq.push_back(stoi(tmp));
tmp = "";
}
}
}
bool errFlag = false;
for (char ch : p) {
if (ch == 'R') {
reversed = !reversed;
} else if (ch == 'D') {
if (!dq.empty()) {
if (reversed) {
dq.pop_back();
} else {
dq.pop_front();
}
} else {
cout << "error" << '\n';
errFlag = true;
break;
}
}
}
if (!errFlag) {
cout << "[";
if (dq.size() > 0) {
if (reversed) {
while (dq.size() > 1) {
cout << dq.back() << ",";
dq.pop_back();
}
cout << dq.back();
} else {
while (dq.size() > 1) {
cout << dq.front() << ",";
dq.pop_front();
}
cout << dq.front();
}
}
cout << "]\n";
}
}
return 0;
}
結果
フィードバック
問題の入力制限事項もよくチェックしてください.
Reference
この問題について([伯俊]5430号:AC), 我々は、より多くの情報をここで見つけました
https://velog.io/@bestcoders/백준-5430번-AC
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
// 백준 5430번 : AC
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int T, n;
string p, arr;
vector<int> v;
cin >> T;
while (T--) {
cin >> p >> n >> arr;
string tmp = "";
for (int i = 0; i < arr.length(); i++) {
char ch = arr[i];
if (isdigit(ch)) {
tmp += ch;
} else {
if (tmp.length() != 0) {
v.push_back(stoi(tmp));
tmp = "";
}
}
}
bool errFlag = false;
for (char ch : p) {
if (ch == 'R') {
reverse(v.begin(), v.end());
} else if (ch == 'D') {
if (!v.empty()) {
v.erase(v.begin());
} else {
cout << "error" << '\n';
errFlag = true;
break;
}
}
}
if (!errFlag) {
cout << "[";
for (int i = 0; i < v.size(); i++) {
if (i != v.size() - 1) {
cout << v[i] << ",";
} else {
cout << v[i];
}
}
cout << "]\n";
}
v.clear();
}
return 0;
}
// 백준 5430번 : AC
#include <iostream>
#include <deque>
#include <algorithm>
using namespace std;
int main() {
int T, n;
string p, arr;
cin >> T;
while (T--) {
cin >> p >> n >> arr;
deque<int> dq;
bool reversed = false;
string tmp = "";
for (int i = 0; i < arr.length(); i++) {
char ch = arr[i];
if (isdigit(ch)) {
tmp += ch;
} else {
if (tmp.length() != 0) {
dq.push_back(stoi(tmp));
tmp = "";
}
}
}
bool errFlag = false;
for (char ch : p) {
if (ch == 'R') {
reversed = !reversed;
} else if (ch == 'D') {
if (!dq.empty()) {
if (reversed) {
dq.pop_back();
} else {
dq.pop_front();
}
} else {
cout << "error" << '\n';
errFlag = true;
break;
}
}
}
if (!errFlag) {
cout << "[";
if (dq.size() > 0) {
if (reversed) {
while (dq.size() > 1) {
cout << dq.back() << ",";
dq.pop_back();
}
cout << dq.back();
} else {
while (dq.size() > 1) {
cout << dq.front() << ",";
dq.pop_front();
}
cout << dq.front();
}
}
cout << "]\n";
}
}
return 0;
}
結果
フィードバック
問題の入力制限事項もよくチェックしてください.
Reference
この問題について([伯俊]5430号:AC), 我々は、より多くの情報をここで見つけました
https://velog.io/@bestcoders/백준-5430번-AC
テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol
問題の入力制限事項もよくチェックしてください.
Reference
この問題について([伯俊]5430号:AC), 我々は、より多くの情報をここで見つけました https://velog.io/@bestcoders/백준-5430번-ACテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol