백준 5430번: AC

danbibibi·2021년 9월 11일

문제

문제 바로가기> 백준 5430번: AC

풀이

시간 초과가 발생하지 않으려면 reverse를 실제로 하는 것이 아니라 예측하는 것이 중요하다.
또 출력형식을 유심히 볼 필요가 있는데, [1,2]와 [1, 2]는 다르기 때문이다.

T = int(input())
for i in range(T):
    is_error=0
    is_reverse=0
    p = input()
    n = int(input())
    str_list = input()
    str_list = str_list[1: -1]
    n_list = []
    if n!=0:
        n_list = list(map(int, str_list.split(',')))

    for i in p:
        if i=='R':
            is_reverse+=1
        else:
            if n==0:
                is_error=1
                break
            if is_reverse%2:
                del n_list[-1]
            else:
                del n_list[0]
            n-=1
    if is_error:
        print("error")
    else:
        print('[', end='')
        if is_reverse % 2:
            for i in range(len(n_list) - 1, -1, -1):
                if i == len(n_list) - 1:
                    print(n_list[i], end='')
                else:
                    print(',', n_list[i], sep='', end='')
        else:
            for i in range(len(n_list)):
                if i == 0:
                    print(n_list[i], end='')
                else:
                    print(',', n_list[i], sep='', end='')
        print(']')
profile
블로그 이전) https://danbibibi.tistory.com

0개의 댓글