[백준] 5430번 AC

거북이·2023년 2월 21일
0

백준[골드5]

목록 보기
25/82
post-thumbnail

💡문제접근

  • R의 횟수가 짝수라면 배열을 두 번 뒤집는 것이기 때문에 기존 상태 그대로 유지가 된다. 하지만 R의 횟수가 홀수라면 배열을 한 번 뒤집어줘야한다. 이 부분에 초점을 맞춰서 코드를 작성했다.
  • 자료구조 deque(덱)을 사용했고 조건에 따라서 pop()popleft()를 적절하게 사용했다.

💡코드(메모리 : 39232KB, 시간 : 248ms)

from collections import deque
import sys
input = sys.stdin.readline

T = int(input())
for _ in range(T):
    flag = True
    p = input().strip()
    n = int(input())
    li = input().strip()[1:-1]
    if li == "":
        li = deque()
    else:
        li = deque(map(str, li.split(",")))
    reverse_cnt = 0
    for i in p:
        if i == "R":
            reverse_cnt += 1
        elif i == "D":
            if len(li) == 0:
                print("error")
                flag = False
                break
            if reverse_cnt % 2 == 0:
                li.popleft()
            else:
                li.pop()
    if flag:
        if reverse_cnt % 2 != 0:
            print("[" + ",".join(map(str, reversed(li))) + "]")
        else:
            print("[" + ",".join(map(str, li)) + "]")

💡소요시간 : 42m

0개의 댓글