이 영역을 누르면 첫 페이지로 이동
자라자 블로그의 첫 페이지로 이동

자라자

페이지 맨 위로 올라가기

자라자

개발자를 준비하는 자라자의 블로그입니다.

백준 5430 AC C++ 풀이

  • 2022.02.05 18:06
  • PS/BOJ

백준로고

[문제 링크]

https://www.acmicpc.net/problem/5430

[입출력 예]

입력 출력
4
RDD
4
[1,2,3,4]
DD
1
[42]
RRD
6
[1,1,2,3,5,8]
D
0
[]
[2,1]
error
[1,2,3,5,8]
error

[소스코드]

#include <bits/stdc++.h>
#define endl '\n'
using namespace std;
void push_DQ(string arr, deque<int> &DQ)
{
  string tmp = "";
  for (int i = 0; i < arr.length(); i++)
  {
    if ('0' <= arr[i] && arr[i] <= '9')
    {
      tmp += arr[i];
    }
    if (arr[i] == ',' || arr[i] == ']')
    {
      if (tmp.compare("") != 0)
        DQ.push_back(stoi(tmp));
      tmp = "";
    }
  }
}
void print_DQ(deque<int> DQ, bool reversed)
{
  cout << "[";

  if (!reversed)
  {
    while (!DQ.empty())
    {
      cout << DQ.front();
      DQ.pop_front();
      if (!DQ.empty())
        cout << ",";
    }
  }
  else
  {

    while (!DQ.empty())
    {
      cout << DQ.back();
      DQ.pop_back();
      if (!DQ.empty())
        cout << ",";
    }
  }
  cout << "]" << endl;
}

int main()
{
  int T;
  cin >> T;
  string cmd, arr;
  int arrLen;
  deque<int> DQ;
  while (T--)
  {
    cin >> cmd;
    cin >> arrLen;
    cin >> arr;

    bool reversed = false;
    bool error = false;

    push_DQ(arr, DQ);

    for (int i = 0; i < cmd.length(); i++)
    {

      if (cmd[i] == 'R')
      {
        reversed = !reversed;
      }
      if (cmd[i] == 'D')
      {
        if (DQ.empty())
        {
          error = true;
          break;
        }
        else if (!reversed)
        {
          DQ.pop_front();
        }
        else if (reversed)
        {
          DQ.pop_back();
        }
      }
    }

    if (error)
    {
      cout << "error" << endl;
    }
    else
    {
      print_DQ(DQ, reversed);
    }
    DQ.clear();
  }
  return 0;
}
 
 
 
 

'PS > BOJ' 카테고리의 다른 글

백준 1629 곱셈 C++  (0) 2022.02.08
백준 1926 그림 C++  (0) 2022.02.06
BOJ 1021 회전하는 큐 C++  (0) 2022.02.02
백준 2164 카드2 c++  (0) 2022.02.01
백준 10845 큐,큐2 c++  (0) 2022.02.01

댓글

이 글 공유하기

  • 구독하기

    구독하기

  • 카카오톡

    카카오톡

  • 라인

    라인

  • 트위터

    트위터

  • Facebook

    Facebook

  • 카카오스토리

    카카오스토리

  • 밴드

    밴드

  • 네이버 블로그

    네이버 블로그

  • Pocket

    Pocket

  • Evernote

    Evernote

다른 글

  • 백준 1629 곱셈 C++

    백준 1629 곱셈 C++

    2022.02.08
  • 백준 1926 그림 C++

    백준 1926 그림 C++

    2022.02.06
  • BOJ 1021 회전하는 큐 C++

    BOJ 1021 회전하는 큐 C++

    2022.02.02
  • 백준 2164 카드2 c++

    백준 2164 카드2 c++

    2022.02.01
다른 글 더 둘러보기

정보

자라자 블로그의 첫 페이지로 이동

자라자

  • 자라자의 첫 페이지로 이동

검색

메뉴

  • 🏠 HOME
  • 💡 ABOUT
  • 💻 GITHUB

카테고리

  • 분류 전체보기 (91)
    • Tech Note (3)
    • Dev Log (11)
    • Study Log (11)
    • Settings (3)
    • PS (53)
      • Programmers (21)
      • BOJ (32)
    • Diary (10)

최근 글

인기 글

댓글

공지사항

아카이브

태그

  • ㅣ
  • 공식문서읽기
  • 리액트

나의 외부 링크

정보

자라자의 자라자

자라자

자라자

블로그 구독하기

  • 구독하기
  • RSS 피드

방문자

  • 전체 방문자
  • 오늘
  • 어제

티스토리

  • 티스토리 홈
  • 이 블로그 관리하기
  • 글쓰기
Powered by Tistory / Kakao. © 자라자. Designed by Fraccino.

티스토리툴바