728x90
반응형
https://www.acmicpc.net/problem/1406
1406번: 에디터
첫째 줄에는 초기에 편집기에 입력되어 있는 문자열이 주어진다. 이 문자열은 길이가 N이고, 영어 소문자로만 이루어져 있으며, 길이는 100,000을 넘지 않는다. 둘째 줄에는 입력할 명령어의 개수
www.acmicpc.net
/*
쉬운 문제인줄 알았다.
처음에는 string 으로 해보려고 했는데 삭제와 삽입이 문제가 되서
링크드 리스트가 필요하다고 느꼈다
그래서 리스트 컨테이너를 사용해보려고 했지만 생각보다 복잡했다.
그러던 중 스택으로 한번 구현해볼까 하는 생각에 스택으로 구현해보았다.
*/
#include <iostream>
#include <stack>
using namespace std;
int main() {
stack<char> st1;
stack<char> st2;
string temp;
char character;
int inputs;
cin >> temp;
for( int i=0 ; i < temp.length() ; i++ ){
st1.push(temp[i]);
}
cin >> inputs;
for(int i = 0 ; i < inputs ; i++){
cin >> temp;
if( temp == "L" && !st1.empty() ) {
st2.push(st1.top());
st1.pop();
}
else if( temp == "D" && !st2.empty() ) {
st1.push(st2.top());
st2.pop();
}
else if( temp == "B" && !st1.empty()) {
st1.pop();
}
else if(temp == "P" ){
cin >> character;
st1.push(character);
}
}
while(!st1.empty()){
st2.push(st1.top());
st1.pop();
}
while(!st2.empty()){
cout << st2.top();
st2.pop();
}
}
풀 때 어려웠던 점 또는 느낀점 :
오랜만에 코딩 문제를 푸는 것이라 머리가 덜 풀린 느낌이 들었다.
앞으로 다시 꾸준히 풀어 머리를 다시 살려야겠다.
리스트로 구현하려고 하니까 iterator 관리가 너무 귀찮고 복잡했다.
스택으로 푸니까 너무 간단했다.
확실히 발상의 전환이 문제를 푸는데 도움이 되는걸 느꼈다.
유연한 사고를 갖추기 위해 많은 문제를 풀어봐야겠다.
728x90
반응형
'Problem Solving' 카테고리의 다른 글
[Python][백준 2251] 물통 (5) | 2024.03.19 |
---|---|
[Python][백준 1068] 트리 (0) | 2024.03.18 |
[C++] [백준 2783] 삼각 김밥 (0) | 2021.08.09 |
[C++] [LeetCode 543] Diameter of Binary Tree (0) | 2021.08.09 |
[C++] [백준 3040] 백설 공주와 일곱 난쟁이 (0) | 2021.08.09 |
댓글