728x90

< 33%에서 실패 >

1. reverse 의 개수를 센 후 홀수일 때만 마지막에 reverse 해주면 된다.

2. reverse 개수에 따라 popleft 를 할지 pop을 할지 정하면 된다.

import sys
 
a = int(input())
 
def R(k):
    answer = [ ]
 
    for i in range(0,len(k)):
        answer.append(k[len(k)-i-1])
 
    return answer    
 
 
def D(k):
    if len(k)==0:
        return False
    else:
        k = k[1:len(k)]
        return k    
 
 
 
def check(order,k):
 
    for i in range(0,len(order)):
        if order[i]=='D':            
 
            if D(k)==False:
                return False
            else:
                k = D(k)        
 
    return k
 
 
for i in range(0,a):
    order = list(input())
    use = int(input())
    k = input().rsplit()
    if use<=0:
        print('error')
    else:    
 
 
        k_copy = list(k) 
 
        k=k.split(",")
 
 
 
 
        k[0]=k_copy[1]
        k[-1]=k_copy[-2]
 
 
        for i in range(0,len(k)):
            k[i] = int(k[i])
 
 
 
        if check(order,k) == False:
            print('error')
        else:
            if order.count('R')%2!=0:
                print(R(check(order,k)))
            else:
                print((check(order,k)))
 
 
 
 

 

< 정답 코드 >

import sys
from collections import deque
 
t = int(input())
 
for i in range(t):
    p = sys.stdin.readline().rstrip()
    n = int(input())
    arr = sys.stdin.readline().rstrip()[1:-1].split(",")
    queue = deque(arr)
 
    rev, front, back = 0, 0, len(queue)-1
    flag = 0
    if n == 0:
        queue = []
        front = 0
        back = 0
 
    for j in p:
        if j == 'R':
            rev += 1
        elif j == 'D':
            if len(queue) < 1:
                flag = 1
                print("error")
                break
            else:
                if rev % 2 == 0:
                    queue.popleft()
                else:
                    queue.pop()
    if flag == 0:
        if rev % 2 == 0:
            print("[" + ",".join(queue) + "]")
        else:
            queue.reverse()
            print("[" + ",".join(queue) + "]")
728x90

+ Recent posts