Updated:

๐Ÿ–๏ธย solution

import sys
from collections import deque
"""
[์‹œ๊ฐ„]
1) 18:25 ~ 18:55

[์š”์•ฝ]
1) ์ƒˆ๋กœ์šด ์–ธ์–ด AC: AC๋Š” ์ •์ˆ˜ ๋ฐฐ์—ด์— ์—ฐ์‚ฐ์„ ํ•˜๊ธฐ ์œ„ํ•ด ๋งŒ๋“  ์–ธ์–ด
    - R(๋’ค์ง‘๊ธฐ): ๋ฐฐ์—ด์— ์žˆ๋Š” ์ˆ˜์˜ ์ˆœ์„œ๋ฅผ ๋’ค์ง‘๋Š” ํ•จ์ˆ˜ => reversed
    - D(๋ฒ„๋ฆฌ๊ธฐ): D๋Š” ์ฒซ ๋ฒˆ์งธ ์ˆ˜๋ฅผ ๋ฒ„๋ฆฌ๋Š” ํ•จ์ˆ˜ => queue
2) ํŠน์ • ๋™์ž‘์„ ์˜๋ฏธํ•˜๋Š” ๋ฌธ์ž์—ด์„ ์ž…๋ ฅ ๋ฐ›์•„ ์˜๋„ํ•œ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค๊ธฐ
[์ „๋žต]
1) ๋ฌด์‹ํ•˜๊ฒŒ ๋งŒ๋“ค์ž
"""
for _ in range(int(sys.stdin.readline())):
    method_seq = list(sys.stdin.readline().rstrip())
    N, target_list, checker, count = int(sys.stdin.readline()), deque(eval(sys.stdin.readline().rstrip())), False, 0
    for method in method_seq:
        try:
            if method == 'R':
                count += 1
            else:
                if count % 2 == 1:
                    target_list.pop()
                else:
                    target_list.popleft()
        except:
            print('error')
            checker = True
            break
            
    if not checker:
        result = '['
        if not list(target_list):
            print('[]')

        elif count % 2 == 0:
            for char in list(target_list):
                result = result + str(char) + ','
            print(result[:-1] + ']')
        else:
            for char in list(reversed(target_list)):
                result = result + str(char) + ','
            print(result[:-1] + ']')

๐Ÿ’กย idea

  • 1) ๋ฌธ์ž์—ด ๋ฆฌ์ŠคํŠธ to Python List
    • eval() , ast.literal_eval() ์„ ์ ์šฉํ•ด ํŒŒ์ด์ฌ์˜ ๋ฆฌ์ŠคํŠธ๋กœ ๋ณ€ํ™˜
  • 2) reverse ์—ฐ์‚ฐ ๋Œ€์ฒด
    • ํŒŒ์ด์ฌ์œผ๋กœ ํ’€๋ฉด ์‹œ๊ฐ„ ์ œํ•œ ๋•Œ๋ฌธ์— ๋ฃจํ”„๋งˆ๋‹ค reverse๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์—†๋Š” ๋ฌธ์ œ ๋ฐœ์ƒ
      • popleft, pop ๋™์‹œ์— ๊ฐ€์ง€๊ณ  ์žˆ๋Š” collections.deque ์ด์šฉํ•ด์„œ ๋ฃจํ”„ ๋‚ด๋ถ€์—์„œ reverse ์ˆ˜ํ–‰์„ ํ”ผํ•จ
  • 3) ์ถœ๋ ฅ ๋ฌธ์ž์—ด
    • ์˜ˆ์ œ ์ถœ๋ ฅ์„ ๋ณด๋ฉด ๋ฆฌ์ŠคํŠธ์˜ ์›์†Œ ์‚ฌ์ด์— ๊ณต๋ฐฑ์ด ์—†์Œ
      • ํŒŒ์ด์ฌ ๋‚ด์žฅ ๋ฆฌ์ŠคํŠธ๋ฅผ ๊ทธ๋Œ€๋กœ ์ถœ๋ ฅํ•˜๋ฉด ์›์†Œ ์‚ฌ์ด์˜ ๊ณต๋ฐฑ ๋•Œ๋ฌธ์— ๋ฌธ์ œ๋ฅผ ํ‹€๋ฆฌ๊ฒŒ ๋œ๋‹ค
      • ๋ฃจํ”„ ๋Œ๋ ค์„œ ๋‚ด์žฅ ๋ฆฌ์ŠคํŠธ๋ฅผ ๋‹ค์‹œ ๋ฌธ์ž์—ด ๋ฆฌ์ŠคํŠธ๋กœ ๋ณ€ํ™˜

ํ’€์ด ํ•„์š”ํ•œ ์•„์ด๋””์–ด๊ฐ€ ๋ณต์žกํ•˜๊ธฐ๋ณด๋‹ค ์—ฌ๋Ÿฌ ํ•จ์ •์„ ์ž˜ ํ”ผํ•ด์•ผ ํ’€ ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ๋‹ค. ๋ฌธ์ž์—ด๋กœ ์ฃผ์–ด์ง€๋Š” ๋ฆฌ์ŠคํŠธ๋ฅผ eval() , ast.literal_eval()๊ฐ™์€ ๋‚ด์žฅ ๋ฉ”์„œ๋“œ๋ฅผ ์ด์šฉํ•ด ํšจ์œจ์ ์œผ๋กœ ํŒŒ์ด์ฌ ๋ฆฌ์ŠคํŠธ๋กœ ์ธ์‹์‹œํ‚ค๋Š” ๊ฒƒ๋ถ€ํ„ฐ ๋งˆ์ง€๋ง‰์— ์ถœ๋ ฅ์— ๊ณต๋ฐฑ์„ ์—†์• ์ฃผ๋Š” ๊ฒƒ๊นŒ์ง€ ์ถœ์ œ์ž๊ฐ€ ๋ง˜๋จน๊ณ  ํ•จ์ •์„ ์—ฌ๋Ÿฌ๊ฐœ ํŒŒ๋†จ๋‹ค. ์‹ค์ œ ์‹œํ—˜์— ๋‚˜์˜ค๋ฉด ์†”์งํžˆ ํ‹€๋ฆด ๊ฒƒ ๊ฐ™๋‹ค. ์‹ค์ „์—์„œ ์ด๋ ‡๊ฒŒ ์—ฌ๋Ÿฌ ํ•จ์ •์„ ๊ณผ์—ฐ ์ž˜ ํ”ผํ•ด๊ฐˆ ์ˆ˜ ์žˆ์„์ง€โ€ฆ

Leave a comment