Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- hackerrank
- BOJ
- C언어
- siss
- 웹페이지 만들기
- 머신러닝
- c
- 드림핵
- HTML
- 백준
- WarGame
- SWEA
- 생활코딩
- hackctf
- 풀이
- 숙명여자대학교 정보보안 동아리
- 파이썬
- BOJ Python
- 자료구조 복습
- XSS Game
- 기계학습
- Sookmyung Information Security Study
- lob
- PHP 웹페이지 만들기
- The Loard of BOF
- c++
- Javascript
- Python
- 숙명여자대학교 정보보안동아리
- CSS
Archives
- Today
- Total
혜랑's STORY
[BOJ_C++] 5430번 : AC 본문
CODE
#include <bits/stdc++.h>
using namespace std;
int main()
{
int t, n;
string p, list, temp;
bool error, reverse;
cin >> t;
while(t--){
reverse = error = false;
deque<string> dq;
cin >> p;
cin >> n;
cin >> list;
for(int i=1; i<list.length(); i++){
if(list[i] == ',' || list[i] == ']'){
if(temp == "") continue;
dq.push_back(temp);
temp = "";
}
else temp += list[i];
}
for(int i=0; i<p.length(); i++){
switch (p[i])
{
case 'R':
if(reverse) reverse = false;
else reverse = true;
break;
case 'D':
if(dq.empty()){
cout << "error\n";
error = true;
}
else if(reverse) dq.pop_back();
else dq.pop_front();
break;
default:
break;
}
if(error) break;
}
if (!error){
cout << "[";
if(!reverse && !dq.empty()){
while(dq.size()>1){
cout << dq.front() << ",";
dq.pop_front();
}
cout << dq.front();
}
else if(reverse && !dq.empty()){
while (dq.size() > 1){
cout << dq.back() << ",";
dq.pop_back();
}
cout << dq.back();
}
cout << "]\n";
}
}
return 0;
}
문제 풀이
- 입력받은 배열을 '[', ',', ']'를 제외한 숫자 부분을 dq 덱에 담아 준다.
- R 함수는 reverse하는 함수이다. (처음에 진짜 reverse 했다가 시간초과 나옴,,,)
- D 함수는 맨 앞 원소를 지우는 함수이다.
- 만약 reverse가 true라면 뒤집어져 있는 것이므로 맨 뒤에 있는 원소를 제거한다.
- reverse가 false라면 배열이 뒤집어지지 않은 것이므로 맨 앞의 원소를 제거한다.
- 만약 error가 나온다면 error를 출력하고 for문을 탈출한다. (탈출 안하면 D개수만큼 error가 찍혀서 틀림,,,)
- 출력할 때 reverse인 경우와 아닌 경우를 구분해서 출력해야 한다. 이때 주의할 점은 dq가 비어있지 않은 경우 원소를 출력해야 한다. (33%에서 계속 틀렸습니다가 나왔는데 비어있는 배열을 출력할 때 닫는 대괄호(']')가 출력이 안되었기 때문이었음,,,)
결과
'무지성 공부방 > 알고리즘 해결' 카테고리의 다른 글
[BOJ_C++] 2493번: 탑 (0) | 2022.09.29 |
---|---|
[BOJ_C++] 11003번: 최솟값 찾기 (0) | 2022.09.28 |
[BOJ_C++] 14500번 : 테트로미노 (3) | 2021.08.27 |
[BOJ_C++] 16928번 : 뱀과 사다리 게임 (0) | 2021.08.24 |
[BOJ_C++] 2292번 : 벌집 (0) | 2021.08.22 |