흙금이네 블로그

[BOJ] 5430 - AC (Python) 본문

알고리즘

[BOJ] 5430 - AC (Python)

흙금 2023. 3. 24. 18:14

 

 

아이디어 #1

 

덱을 이용하여 수를 지워 나간다.

 

 

풀이 #1

 

import sys
from collections import deque

input = sys.stdin.readline

def solution():
    T = int(input())
    for t in range(T):
        p = input().rstrip()
        n = int(input())
        x = deque(input().rstrip()[1:-1].split(','))
        if n == 0:
            x.clear()
        r = False
        for c in p:
            if c == 'R':
                r = ~r
            else:
                if x:
                    if r:
                        x.pop()
                    else:
                        x.popleft()
                else:
                    print('error')
                    break
        else:
            if r:
                print(f"[{','.join(list(x)[::-1])}]")
            else:
                print(f"[{','.join(x)}]")

solution()

 

 

 

아이디어 #2

 

투 포인터를 이용하여 수를 지워 나간다.

 

 

풀이 #2

 

import sys

input = sys.stdin.readline

def solution():
    T = int(input())
    for t in range(T):
        p = input().rstrip()
        n = int(input())
        x = input().rstrip()[1:-1].split(',')
        if n == 0:
            x.clear()
        s = 0
        e = n
        r = False
        for c in p:
            if c == 'R':
                r = ~r
            else:
                if s < e:
                    if r:
                        e -= 1
                    else:
                        s += 1
                else:
                    print('error')
                    break
        else:
            if r:
                print(f"[{','.join(x[s:e][::-1])}]")
            else:
                print(f"[{','.join(x[s:e])}]")

solution()

 

Comments