[골드5] 5430번 : AC

Quesuemon·2022년 2월 24일
0

코딩테스트 준비

목록 보기
103/111

🛠 문제

https://www.acmicpc.net/problem/5430


👩🏻‍💻 해결 방법

리스트 대신 deque를 사용해서 해결할 수 있었다
reverse를 할 때마다 deque를 뒤집어야 해서 시간초과가 났었는데,
reverse를 매번 실행하지 않고 뒤집는 횟수를 기억해두었다가 뒤집는 횟수가 홀수일 때만 뒤집으면 시간을 줄일 수 있었다
(짝수번을 뒤집게 되면 안 뒤집는 상황이랑 똑같기 때문)

소스 코드

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) + "]")

0개의 댓글

관련 채용 정보