- 에디터가 지원하는 명령어는 4가지이다.
- 커서를 왼쪽으로 한 칸 옮기는 명령 ( L )
- 커서를 오른쪽으로 한 칸 옮기는 명령 ( D )
- 커서 왼쪽에 있는 문자 삭제 ( B )
- 입력 받은 $ 위치의 문자를 커서 왼쪽에 추가함. ( P $ )
- 번 명령어는 커서가 문장의 맨 앞이면 무시
- 번 명령어는 커서가 문장의 맨 뒤이면 무시
[ 입력 ]
- 첫째 줄에 편집기에 입력되어있는 초기의 문자열 입력
- 둘째 줄에 입력할 명령어의 개수 입력 ( N )
- 셋째 줄부터 N개의 줄에 걸쳐 명령어 입력 ( 문제의 명령어 형태로만 입력)
[ 출력 ]
- 모든 명령어를 수행하고 난 후 편집기에 입력되어있는 문자열 출력
- 가장 초기의 문자열은 모두 다 왼쪽 stack에 저장.
- 커서가 왼쪽으로 움직이면 left stack -> right stack 으로 저장
커서가 오른쪽으로 움직이면 right stack -> left stack 으로 저장- 커서를 기준으로 왼쪽부분 변경 시 left stack에,
오른쪽 부분 변경 시 right stack에 영향이 있음.
- left, right stack에 나눠져있으므로 하나의 stack에 모아 출력.
※ stack은 top의 원소가 제일 먼저 pop 되므로 순서 신경써서 합치기.
- 이 예시로 봤을 때 left stack의 원소를 가장 앞 원소부터 출력하고, 그 후 right stack의 원소를 출력하면 된다.
left stack에 있는 문자들은 순서가 반대로 되어있으므로 따로따로 출력하는 것이 아닌 left stack의 문자들을 right stack에 옮겨 top 원소부터 차례로 출력했다.