[백준 5430번][Python/파이썬] AC

공학도 Lee·2023년 2월 20일
0

백준 문제 풀이

목록 보기
61/63

1. 문제


출처: 백준 5430번 AC

2. 풀이


문제 풀이의 핵심은 뒤집는 함수를 직접 수행하기 보다는 간접적으로 결과를 뽑는데 있다.

먼저, deque를 통해 숫자를 저장한다. 그리고, R이 몇 번 실행되어야하는지 기록하는 변수를 통해 앞에서 숫자를 뺄지 뒤에서 뺄지를 정해주면 된다.

3. 소스코드


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

T = int(input())

for _ in range(T):
    p = input().rstrip()
    n = int(input())
    if n == 0:
        input()
        numbers = deque()
    else:
        numbers = deque(input().rstrip()[1:-1].split(","))
    count_R = 0
    check = 0
    for i in p:
        if i == 'R':
            count_R += 1
        else:
            if i == 'D' and count_R % 2 == 0:
                if numbers:
                    numbers.popleft()
                else:
                    check = 1
                    break
            else:
                if numbers:
                    numbers.pop()
                else:
                    check = 1
                    break
    if check == 1:
        print("error")
    else:
        if count_R % 2 == 1:
            numbers.reverse()
        print("["+",".join(numbers)+"]")   

4. 그 외


profile
이창민, Changmin Lee

0개의 댓글