Search
Duplicate
🍋

에디터

주차
15
문제번호
1406
언어
C++
티어
실버
유형
자료구조
nj_Blog
nj_상태
이해도
풀이
풀이 O
사람
이해도 2
13 more properties

Memo

스택 두개를 써서 문자를 집어넣는다!
마지막에 모든 동작이 끝나면 tmp에 str의 남은 모든 문자를 집어넣고 하나씩 출력한다!

Code

제출 날짜

@4/8/2021

메모리

2940 KB

시간

44 ms
#include <iostream> #include <stack> std::string str; std::stack<char> res; std::stack<char> tmp; int N; void output() { while(!tmp.empty()) { std::cout << tmp.top(); tmp.pop(); } } void solution() { char c; for (int i = 0; i < N; ++i) { std::cin >> c; if (c == 'P') { std::cin >> c; res.push(c); } else if (c == 'B' && !res.empty()) { res.pop(); } else if (c == 'L' && !res.empty()) { tmp.push(res.top()); res.pop(); } else if (c == 'D' && !tmp.empty()) { res.push(tmp.top()); tmp.pop(); } } while (!res.empty()) { tmp.push(res.top()); res.pop(); } } void input() { std::cin >> str; std::cin >> N; for (size_t i = 0; i < str.size(); ++i) res.push(str[i]); } void preset() { std::ios_base::sync_with_stdio(false); std::cin.tie(NULL); std::cout.tie(NULL); } int main() { preset(); input(); solution(); output(); }
C++
복사