풀이
import sys; import collections
S = list(sys.stdin.readline().strip())
Q = collections.deque()
N = int(sys.stdin.readline().strip())
for _ in range(N):
info = list(sys.stdin.readline().strip().split())
if info[0] == 'L' and S:
Q.append(S.pop())
elif info[0] == 'D' and Q:
S.append(Q.pop())
elif info[0] == 'B' and S:
S.pop()
elif info[0] == "P":
S.append(info[1])
Q.reverse()
S.extend(Q)
print(''.join(S))
후기
- deque를 사용한 건 처음에 커서를 오른쪽으로 옮기면 Q의 맨 앞의 요소를 추가시켜야 한다고 생각해서이다..
- 근데 아니었음.. 그냥 무시해주세요!
- 알고리즘 스터디의 연결리스트 파트의 문제를 품
- 근데 사실 연결리스트 강의를 안듣고 풀어보았다
- 책으로 연결리스트를 대충 보니 대략적으로 구조가 어떻게 이루어진지 알겠다
- 배열을 사용할때 하나의 배열로 놓지 않고 여러개의 배열을 연결시켜 각 각 다른 메모리를 차지하는 놈들을 연결시키는것인 것 같다.
- 이 문제는 insert, pop(특정인덱스)를 사용하지 않고 풀어야 되고, 결국은 두 배열을 연결시켜야 된다.
'백준' 카테고리의 다른 글
백준 13305 주유소 (파이썬, 자바) (0) | 2022.11.10 |
---|---|
백준 15686 치킨 배달 (파이썬) (0) | 2022.11.08 |
백준 18870 좌표 압축 (파이썬, 자바) (0) | 2022.11.01 |
백준 1874 스택 수열 (파이썬) (0) | 2022.10.28 |
백준 9020 골드바흐의 추측 (파이썬) (0) | 2022.10.23 |