-
[HackerRank] Simple Text Editor c++Coding Test/HackerRank 2023. 5. 17. 09:46728x90
- Problem
- Sample Input
STDIN Function ----- -------- 8 Q = 8 1 abc ops[0] = '1 abc' 3 3 ops[1] = '3 3' 2 3 ... 1 xy 3 2 4 4 3 1
- Sample Output
c y a
- Explanation
Initially, S is empty. The following sequence of 8 operations are described below:
- Solutions
stack을 사용하여 푸는 문제 유형입니다.
4개의 연산 번호가 주어지고 정해진 연산을 수행하면 됩니다.
4번은 undo로 이전 1,2연산 전의 string으로 돌아가는 연산입니다.
4번에 유의해서 풀어야하는 문제입니다.
#include <cmath> #include <cstdio> #include <vector> #include <iostream> #include <algorithm> #include <stack> using namespace std; int main() { /* Enter your code here. Read input from STDIN. Print output to STDOUT */ int n; cin >> n; int oper = 0; string str(""); stack<string> strStack; for(int i = 0; i < n; i++){ cin >> oper; if(oper == 1){ string strInsert(""); cin >> strInsert; strStack.push(str); str += strInsert; } else if(oper == 2){ int nDelete; cin >> nDelete; strStack.push(str); str.erase(str.size() - nDelete); } else if(oper == 3){ int nPos; cin >> nPos; cout << str[nPos - 1] << "\n"; } else{ str = strStack.top(); strStack.pop(); } } return 0; }
728x90'Coding Test > HackerRank' 카테고리의 다른 글
[HackerRank] Balanced Brackets c++ (0) 2023.05.15 [HackerRank] Tower Breakers c++ (0) 2022.07.20 [HackerRank] Zig Zag Sequence C++ (0) 2022.07.20 [HackerRank] counting sort 1 c++ (0) 2022.07.20 [HackerRank] Lonely Integer c++ (0) 2022.07.20