반응형
풀이
- R이 2개 붙으면 한바퀴 도는 것이므로 모든 RR을 제거해 계산수를 줄임
- R과 D의 순서대로 진행해 배열의 앞과 뒤에서 D 연산을 진행하고 남은 결과를 출력한다
- R은 등장할 떄 마다 side에 -1을 곱해주어 배열을 뒤집는 대신 읽는 순서를 달리하도록 함
import sys
n = int(sys.stdin.readline())
for _ in range(n):
cnt = 1
side = -1
move = list(input().replace("RR",""))
m = int(sys.stdin.readline())
cha = input()
chat = cha.replace("[","").replace("]","")
stack = chat.split(",")
if m == 0:
stack = []
ii = 0
for i in range(0,len(move)):
if move[i] == "R":
side = side * -1
else:
if len(stack) == 0:
print("error")
cnt = 0
break
else:
if side == -1:
stack.pop(0)
else:
stack.pop()
if cnt == 1 and side == -1:
print("[", end="")
for t in range(0,len(stack)):
print(stack[t],end="")
if t != len(stack)-1:
print(",",end="")
print("]")
elif cnt == 1 and side == 1:
print("[", end="")
for t in range(len(stack)-1,-1,-1):
print(stack[t],end="")
if t != 0:
print(",",end="")
print("]")
반응형
'코딩 > 백준' 카테고리의 다른 글
알고리즘 - Python / 백준 - 9461번 : 파도반 수열 (0) | 2021.08.14 |
---|---|
알고리즘 - Python / 백준 - 2579번 : 계단 오르기 (0) | 2021.08.14 |
알고리즘 - Python / 백준 - 6603번 : 로또 (0) | 2021.08.14 |
알고리즘 - Python / 백준 - 14397번 : 해변 (0) | 2021.08.14 |
알고리즘 - Python / 백준 - 1463번 : 1로 만들기 (0) | 2021.08.14 |