- 접근방식
커서의 왼쪽과 오른쪽을 구분하여 문자 하나하나 순서대로 최신화하기에 스택이 적합하다고 생각하여 문제를 풀어나갔다.
이 과정에서 처음엔 스택을 하나로 설정하였는데, 왼쪽과 오른쪽을 나누는 과정에서 스택을 2개로 나누어 따로따로 해결해 나가는것이 합리적이라는것을 깨달았다.
- 논리 흐름(알고리즘)
커서를 기준으로 왼쪽 문자들을 left스택에, 오른쪽 문자들을 right스택에 저장하고, 커맨드 키가 L일 경우 오른쪽 스택에서 왼쪽 스택으로 문자를 옮겨주고 R일 경우 왼쪽 스택에서 오른쪽 스택으로 문자들을 최신화 시킨다.
B와 P일 경우에는 커서의 왼쪽 문자를 바꾸어주기 때문에 left스택에서 최신화 시켜주었다.
구현 과정에서 char형이기 때문에 가독성을 위해 switch문으로 구현할 수 있었다.
마지막 결과값 출력에서 스택은 LIFO이기 때문에 문자열 순서가 맞지 않아 deque으로 바꿀까 생각했지만,
left저장 값들을 모두 right로 옮겨주면 스택으로 순서에 맞게 구현가능하다는 아이디어가 떠올랐다.
'백준 문제풀이' 카테고리의 다른 글
백준 12789번 - 도키도키 간식드리미 (0) | 2022.07.25 |
---|---|
백준 1158번 - 요세푸스 (0) | 2022.07.24 |
백준 10799문제 - 쇠막대기 (0) | 2022.07.23 |
백준 2346번 - 풍선터트리기 (0) | 2022.07.20 |
백준 17219번 - 비밀번호 찾기 (0) | 2022.07.20 |