문제
문제 바로가기> BOJ 5430번: AC
풀이
덱에 들어갈 숫자의 길이가 1 이상일 수 있다. (0<x<101 이므로)
잘못 파싱해서 문제를 틀렸었다. 또, 이 밖에도 처리를 잘못해주면 틀릴 수 있으니, 문제를 잘 읽고 처리를 정확히 해줄 필요가 있다.
#include<iostream>
#include<deque>
using namespace std;
int main(){
ios_base::sync_with_stdio(0); cin.tie(0);
int T; cin >> T;
while(T--){
string p; cin >> p;
int size; cin >> size;
string arr; cin >> arr;
deque<int> dq;
string num = "";
for(int i=1; i<arr.size(); i++){
if(arr[i]==']' || arr[i] == ',') {
if(num == "") continue;
dq.push_back(stoi(num));
num = "";
}
else num+=arr[i];
}
bool isfront = true; // 덱 방향이 앞부터 시작인지
bool iserror = false; // error를 출력해야하는지
for(int i=0; i<p.size(); i++){
if(p[i] == 'R') isfront = !isfront;
else if(p[i] == 'D'){
if(size == 0){
iserror = true;
break;
}
if(isfront) dq.pop_front();
else dq.pop_back();
size--;
}
}
if(iserror) cout << "error" << "\n";
else{
cout << "[";
if(isfront){
while(size--){
if(size > 0) cout << dq.front() << ",";
else cout << dq.front();
dq.pop_front();
}
}
else{
while(size--){
if(size > 0) cout << dq.back() << ",";
else cout << dq.back();
dq.pop_back();
}
}
cout << "]\n";
}
}
}
'문제 풀이 > 백준' 카테고리의 다른 글
BOJ 1253번: 좋다 (0) | 2022.12.23 |
---|---|
BOJ 2887번: 행성 터널 (1) | 2022.12.22 |
BOJ 13549번: 숨바꼭질 3 (0) | 2022.12.14 |
BOJ 1697번: 숨바꼭질 (0) | 2022.12.13 |
BOJ 2294번: 동전 2 (0) | 2022.12.09 |