접근 방식(알고리즘 분류)
- 문자열
내 풀이
from collections import deque
testcase = int(input())
answer = []
for _ in range(testcase):
s = input()
n = int(input())
temp = input()
temp2 = temp.split(",")
if len(temp2) == 1:
if temp2[0][1] == "]":
temp2 = []
else:
temp2 = [temp2[0][1:-1]]
else:
temp2[0] = temp2[0][1:]
temp2[-1] = temp2[-1][:-1]
number = deque([i for i in temp2])
flag = 0
check = False
for i in s:
if i == "R":
flag += 1
else:
if len(number) == 0:
answer.append("error")
check = True
break
if flag%2 == 0:
number.popleft()
else:
number.pop()
if check:
continue
if flag%2 == 0:
result = [i for i in number]
else:
result = []
for i in range(len(number)-1, -1, -1):
result.append(number[i])
result = "[" + ",".join(result) + "]"
answer.append(result)
for i in answer:
print(i)
풀이 설명
- deque로 문제에 접근했다.
- R이 나왔을때 실제로 배열을 뒤집지 않고, flag로 처리했다 --> 시간, 공간 효율을 위해
- 문자열 slicing 과 join함수만 잘쓰면 쉽게 풀 수 있는 문제였다.
- join을 할때 배열의 인자가 int 형이면 안된다. (당연한건데..)