3 분 소요

🗒️ 1406번) 에디터

#include <iostream>
#include <list>
using namespace std;

int main()
{
	ios::sync_with_stdio(false);
	cin.tie(nullptr);

	string str;
	cin >> str;
	list<char> l;
	for (char c : str)
		l.push_back(c);

	list<char>::iterator cur = l.end();

	int M;
	cin >> M;
	while (M--)
	{
		char command;
		cin >> command;
		
		switch (command)
		{
		case 'L':
			if (cur != l.begin())
				cur--;
			break;

		case 'D':
			if (cur != l.end())
				cur++;
			break;

		case'B':
			if(cur != l.begin())
				cur = l.erase(--cur); // 지웟기 때문에 커서는 현재 위치 유지
			break;

		case 'P':
			char c;
			cin >> c;
			l.insert(cur, c);
			break;
		}
	}
	
	for (char c : l)
		cout << c;

	return 0;
}
  • 중간 삽입, 삭제가 필요하기에 list 사용

카테고리:

업데이트:

댓글남기기