[백준/BOJ] 백준 1406번 : 에디터
2020. 8. 16. 08:33ㆍ알고리즘 문제풀이
https://www.acmicpc.net/problem/1406
list와 iterator를 통해 구현을 했다.
코드
#include <iostream>
#include <string>
#include <list>
using namespace std;
int main()
{
cin.tie(NULL);
ios_base::sync_with_stdio(false);
string input;
int m;
list<char> editor; //리스트로 구현하였다
list<char>::iterator it;
char order, order_input;
cin >> input;
//입력받은 문자열을 문자별로 리스트에 넣는다
for (int i = 0; i < input.size(); i++)
editor.push_back(input[i]);
//명령어가 수행되기전 커서는 문장의 맨 뒤에 위치하므로
it = editor.end();
cin >> m;
for (int i = 0; i < m; i++)
{
cin >> order;
if (order == 'L')
{
if (it != editor.begin())
it--;
}
else if (order == 'D')
{
if (it != editor.end())
it++;
}
else if (order == 'B')
{
if (it != editor.begin())
{
it--;
it = editor.erase(it); //erase는 삭제한 것의 다음것을 가르키는것을 반환
}
}
else if (order == 'P')
{
cin >> order_input;
editor.insert(it, order_input);
}
}
//출력
for (it = editor.begin(); it != editor.end(); it++)
cout << (*it);
return 0;
}
'알고리즘 문제풀이' 카테고리의 다른 글
[백준/BOJ] 백준 5397번 : 키로거 (0) | 2020.08.17 |
---|---|
[백준/BOJ] 백준 1158번 : 요세푸스 문제 (0) | 2020.08.16 |
[백준/BOJ] 백준 5427번 : 불 (0) | 2020.08.15 |
[백준/BOJ] 백준 6087번 : 레이저 통신 (0) | 2020.08.15 |
[백준/BOJ] 백준 3055번 : 탈출 (0) | 2020.08.15 |