728x90
크흡...! 첫시도는 시간초과 떴다 ㅋㅋㅋㅋ
#5430 AC
import sys
T = int(input())
for _ in range(T):
command = sys.stdin.readline().rstrip()
n = int(sys.stdin.readline())
array = sys.stdin.readline().rstrip()[1:-1].split(",")
flag = 0
for cur in command:
if cur == 'R':
if len(array) == 0:
flag = 1
print('error')
break
array.reverse()
else: # 'D'
if len(array) == 0:
flag = 1
print('error')
break
array.pop(0)
if flag == 0:
print("["+",".join(array)+"]")
아 뭐가 문젠가 생각했는데 제한시간 1초면 아무래도 냅다 reverse()함수를 쓰면 안될거같다... 언제 뒤집고 그러는가..!!
R의 갯수가 홀수일때랑 짝수일때 나눠서 R이짝수이면 reverse()안쓰고 바로 그냥 출력하고
R의 개수가 홀수이면 reverse()된 (뒤집어진) 배열을 출력해주면 될거같다
#5430 AC
import sys
T = int(input())
for _ in range(T):
command = sys.stdin.readline().rstrip()
n = int(sys.stdin.readline())
array = sys.stdin.readline().rstrip()[1:-1].split(",")
flag = 0
count = 0
for cur in command:
if cur == 'R':
count += 1
else: # 'D'
if len(array) < 1:
flag = 1
print('error')
break
array.pop(0)
if flag == 0:
if count%2 == 0:
print("["+",".join(array)+"]")
else:
array.reverse()
print("[" + ",".join(array) + "]")
그렇지만 이 코드로도 시간초과를 받았다 ㅋㅋㅋ
간과한 점은 reverse되어야 할 때인지 아닐때인지를 D 명령이 나올 때에도 해주어야 한다는 것이다 !! 그래야 queue가 있으면 pop()을 할지 popleft()를 할지 알 수 있다.
또한 n 이 0일때의 예외처리도 해주어야 한다. 왜 예외처리를 해주어야 하는걸까 ?
array = sys.stdin.readline().rstrip()[1:-1].split(",")
여기서 []가 input일때 말이 안되기는 하는데.. 이런 경우 직접 찍어보면
잘찍히는것 같은데..? 라고 생각했으나
print(len(queue))
를 하면 queue의 길이가 1이라고 나온다 그러면 배열이 [] 이고 D명령이 나오는 경우를 처리할 수 없다. --> 문제에서는 4번째 예시
아하ㅏ 그래서 queue = []라고 초기화를 다시해주나보다..
#5430 AC
import sys
from collections import deque
T = int(input())
for _ in range(T):
command = sys.stdin.readline().rstrip()
n = int(sys.stdin.readline())
array = sys.stdin.readline().rstrip()[1:-1].split(",")
queue = deque(array) # list -> queue type
flag = 0
count = 0
if n == 0:
queue = []
for cur in command:
if cur == 'R':
count += 1
elif cur == 'D':
if len(queue) < 1:
flag = 1
print("error")
break
else:
if count % 2 == 0:
queue.popleft()
else:
queue.pop()
if flag == 0:
if count%2 == 0:
print("["+",".join(queue)+"]")
else:
queue.reverse()
print("[" + ",".join(queue) + "]")
728x90