[5430] AC, C++

2019. 7. 22. 18:52·DEV/PS

한줄 후기 : 어려워 ㅠ

 

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

 

5430번: AC

문제 선영이는 주말에 할 일이 없어서 새로운 언어 AC를 만들었다. AC는 정수 배열에 연산을 하기 위해 만든 언어이다. 이 언어에는 두 가지 함수 R(뒤집기)과 D(버리기)가 있다. 함수 R은 배열에 있는 숫자의 순서를 뒤집는 함수이고, D는 첫 번째 숫자를 버리는 함수이다. 배열이 비어있는데 D를 사용한 경우에는 에러가 발생한다. 함수는 조합해서 한 번에 사용할 수 있다. 예를 들어, "AB"는 A를 수행한 다음에 바로 이어서 B를 수행하는 함수이다.

www.acmicpc.net

덱을 이용해서 풀면 된다. 

두자리 수를 int로 변환해서 덱에 넣어야하는 과정 필요

 

#include <iostream> 
#include <deque> 
#include <string> 

using namespace std;

int main() {
	bool chk; 	// true이면 앞에서 false이면 뒤에서 
	bool ok; 		// 비어있을 때 D 호출하면 error
	int T, n;
	cin >> T;
	while (T--) {
		string cmd = "";
		string input_arr = "";
		deque<int> dq;
		ok = true;
		chk = true;

		cin >> cmd;		// 수행할 함수
		cin >> n;			// 배열에 들어있는 수의 개수
		cin >> input_arr;		// 배열을 담을 문자
		string num = "";	 	// dq에 넣을 수
		for (int i = 0; i < input_arr.length(); ++i) {  // deque로 만들기 
			if (input_arr[i] == ',' || input_arr[i] == ']') {
				if (input_arr[i - 1] == '[') 		break;
				dq.push_back(atoi(num.c_str()));
				num = "";
			}
			else if (input_arr[i] != '[' && input_arr[i] != ']')  num += input_arr[i];
		}
		for (int i = 0; i < cmd.size(); ++i) {
			if (cmd[i] == 'R') {
				if (chk)	chk = false;
				else 	chk = true;
			}
			else if (cmd[i] == 'D') {
				if (dq.size() <= 0) {
					ok = false;
					break;
				}
				else {
					if (chk)	dq.pop_front();
					else 	dq.pop_back();
				}
			}
		}
		if (!ok)	cout << "error" << endl;
		else {
			cout << "[";
			for (int i = 0; dq.size() > 0; ++i) {
				if (chk) {
					cout << dq.front();
					dq.pop_front();
					if (!dq.empty())	cout << ",";
				}
				else {
					cout << dq.back();
					dq.pop_back();
					if (!dq.empty())	cout << ",";
				}
			}
			cout << "]"<< endl;
		}

	}
}

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

[1406] 에디터, C++  (0) 2019.07.22
[1152] 단어의 개수, C++  (0) 2019.07.22
[9012] 괄호, C/C++  (0) 2019.07.22
[1158] 조세퍼스 문제, C++  (0) 2019.07.22
[1543] 문서 검색, C  (0) 2019.07.20
'DEV/PS' 카테고리의 다른 글
  • [1406] 에디터, C++
  • [1152] 단어의 개수, C++
  • [9012] 괄호, C/C++
  • [1158] 조세퍼스 문제, C++
jobchae
jobchae
말하는 감자지만, 코드를 끄적이는 Node.js 백엔드 개발자입니다.
  • jobchae
    JOBCHAE
    jobchae
  • 전체
    오늘
    어제
    • 🚀 JOBCHAE (182)
      • DEV (151)
        • PS (108)
        • Node.js (12)
        • React (3)
        • docker (1)
        • 잡다한 개발 일지 (21)
        • injection (1)
        • JS, TS (3)
        • DB (2)
      • 축구 (0)
      • 일상 (19)
      • 영화 (3)
      • 음악 (8)
  • 블로그 메뉴

    • 💻 Github
    • 🙋🏻 Linkedin
    • 📖 방명록
  • 링크

    • PS Github
  • 공지사항

  • 인기 글

  • 태그

    이분탐색
    mongoDB
    JavaScript
    DP
    백준
    회고
    렛츠락페스티벌
    일상
    DFS
    솝트
    db
    PS
    nodejs
    boj
    우선순위큐
    리액트
    SOPT
    앱잼
    BFS
    typescript
    Nest.js
    Express
    위상정렬
    슬랙봇
    개발
    알고리즘
    슬랙
    GitHub
    react
    node.js
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
jobchae
[5430] AC, C++
상단으로

티스토리툴바