[백준 5430] AC - 큐(python / 파이썬)

해리·2021년 9월 26일

50%, 75% 까지 가다가 틈틈이 계속 틀렸는데 그 이유가 빈 큐가 됐을 경우의 조건을 제대로 구현하지 않아서였다 ㅠ 이것 때문에 계속 인내심의 한계를 느낌
1) 처음에 [] 이렇게 들어왔더라도, D가 아니라 R만 계속 주어진다면 error가 아닌 []를 반환해야 함.
2) [1,2] 이런 큐가 있을 때 DD 가 주어진다면 에러가 아니라 []를 반환해야 함.
이런 조건들에 대해 더 꼼꼼히 살피자!!

# -*- coding: utf-8 -*-
"""
Created on Sun Sep 26 11:51:02 2021

@author: 82103
"""

from collections import deque
def AC(a, rev, com,e): # 배열, 리버스스위치, 명령어

    if com == 'R': # 리버스
        if rev == True:
            rev = False
        else:
            rev = True
    else: # 삭제
        if len(a) == 0: # 삭제 불가
            print('error')
            e = True
        
        else:
            if rev == False:
                a.popleft()
            else:
                a.pop()
                
    return a, rev, e


T = int(input())

for i in range(T):
    
    rev = False # 초기화
    p = list(input().rstrip())
    n = int(input())
    a = input().rstrip()
    e = False
    
    if n == 0:
        a = deque([])
    
    else:
        a = deque(list(map(int, a[1:-1].split(','))))
    
    for j in range(len(p)):
        a, rev,e = AC(a, rev, p[j],e)
        if e:
            break
 
    if e == False:
        if rev == False:
            a = list(a)
            print('['+','.join(map(str,a))+']')
        else:
            a = list(reversed(a))
            print('['+','.join(map(str,a))+']')
profile
점의 연결

0개의 댓글