[C++] 덱(Deque)

2020. 4. 30. 18:39Β·πŸ“ Computer Science/✏ Algorithm

덱(Deque)

큐의 λ³€ν˜•νŒμœΌλ‘œ μ•ž, λ’€ μ–‘μͺ½μ—μ„œ λͺ¨λ‘ μ‚½μž…κ³Ό μ‚­μ œκ°€ κ°€λŠ₯ν•˜λ‹€.

 

문제

 

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

 

5430번: AC

문제 μ„ μ˜μ΄λŠ” 주말에 ν•  일이 μ—†μ–΄μ„œ μƒˆλ‘œμš΄ μ–Έμ–΄ ACλ₯Ό λ§Œλ“€μ—ˆλ‹€. ACλŠ” μ •μˆ˜ 배열에 연산을 ν•˜κΈ° μœ„ν•΄ λ§Œλ“  언어이닀. 이 μ–Έμ–΄μ—λŠ” 두 κ°€μ§€ ν•¨μˆ˜ R(λ’€μ§‘κΈ°)κ³Ό D(버리기)κ°€ μžˆλ‹€. ν•¨μˆ˜ R은 배열에 μžˆλŠ” 숫자의 μˆœμ„œλ₯Ό λ’€μ§‘λŠ” ν•¨μˆ˜μ΄κ³ , DλŠ” 첫 번째 숫자λ₯Ό λ²„λ¦¬λŠ” ν•¨μˆ˜μ΄λ‹€. 배열이 λΉ„μ–΄μžˆλŠ”λ° Dλ₯Ό μ‚¬μš©ν•œ κ²½μš°μ—λŠ” μ—λŸ¬κ°€ λ°œμƒν•œλ‹€. ν•¨μˆ˜λŠ” μ‘°ν•©ν•΄μ„œ ν•œ λ²ˆμ— μ‚¬μš©ν•  수 μžˆλ‹€. 예λ₯Ό λ“€μ–΄, "AB"λŠ” Aλ₯Ό μˆ˜ν–‰ν•œ λ‹€μŒμ— λ°”λ‘œ μ΄μ–΄μ„œ Bλ₯Ό μˆ˜ν–‰ν•˜λŠ” ν•¨μˆ˜μ΄λ‹€.

www.acmicpc.net

#include <iostream>
#include <string>
#include <deque>
using namespace std;

int main()
{
	int t;
	cin >> t;
	while (t--) {
		string p, x;
		int n;
		cin >> p >> n >> x;

		deque<string> d;
		for (int i = 2, j = 1; i < x.size(); ++i) {
			if (x[i] == ',' || x[i] == ']') {
				d.push_back(x.substr(j, i - j));
				j = i + 1;
			}
		}

		bool reverse = false, error = false;
		for (int i = 0; i < p.size(); ++i) {
			if (p[i] == 'R')
				reverse = !reverse;
			else if (p[i] == 'D') {
				if (d.empty()) {
					error = true;
					break;
				}

				if (reverse)
					d.pop_back();
				else
					d.pop_front();
			}
		}

		string answer = "";
		if (error)
			answer = "error";
		else {
			if (reverse) {
				for (auto iter = d.rbegin(); iter != d.rend(); ++iter)
					answer += (*iter) + ",";
			}
			else {
				for (auto iter = d.begin(); iter != d.end(); ++iter)
					answer += (*iter) + ",";
			}

			if (answer.back() == ',')
				answer.pop_back();
			answer = '[' + answer + ']';
		}
		cout << answer << '\n';
	}
}
μ €μž‘μžν‘œμ‹œ (μƒˆμ°½μ—΄λ¦Ό)
'πŸ“ Computer Science/✏ Algorithm' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€
  • [C++] 깊이 μš°μ„  탐색(DFS), λ„ˆλΉ„ μš°μ„  탐색(BFS)
  • [C++] 동적 κ³„νšλ²•(Dynamic Programming)
  • [C++] 큐(Queue), μš°μ„ μˆœμœ„ 큐(Priority Queue)
  • [C++] μŠ€νƒ(Stack)
Blxxming
Blxxming
CS 지식과 κ³΅λΆ€ν•˜λ‹€ 배운 것, κ²½ν—˜ν•œ 것 등을 κΈ°λ‘ν•˜λŠ” λΈ”λ‘œκ·Έμž…λ‹ˆλ‹€.
  • Blxxming
    πŸ’‘λ²ˆλœ©πŸ’‘
    Blxxming
  • 전체
    였늘
    μ–΄μ œ
  • 곡지사항

    • Tech Interview
    • πŸ“š Tech (246)
      • πŸ“ Computer Science (96)
        • ✏ OS (12)
        • ✏ Network & Web (10)
        • ✏ Database (11)
        • ✏ Data Structure (6)
        • ✏ Algorithm (40)
        • ✏ Design Pattern (9)
        • ✏ Cloud Computing (3)
        • ✏ (5)
      • πŸ“ Language (73)
        • ✏ Language (6)
        • ✏ C & C++ (11)
        • ✏ C# (19)
        • ✏ JAVA (37)
      • πŸ“ Game (43)
        • ✏ Computer Graphics (2)
        • ✏ Unity (14)
        • ✏ Unreal (26)
        • ✏ (1)
      • πŸ“ Book (34)
        • ✏ Effective (3)
        • ✏ Game Server (16)
        • ✏ Clean Code (14)
        • ✏ (1)
  • hELLOΒ· Designed Byμ •μƒμš°.v4.10.0
Blxxming
[C++] 덱(Deque)
μƒλ‹¨μœΌλ‘œ

ν‹°μŠ€ν† λ¦¬νˆ΄λ°”