[๋ฐฑ์ค€ 5430 / Python] AC

KYUNG HWANยท2021๋…„ 8์›” 30์ผ
0

๋ฐฑ์ค€

๋ชฉ๋ก ๋ณด๊ธฐ
2/8
post-thumbnail

๐Ÿง‘๐Ÿปโ€๐Ÿ’ป ๋ฌธ์ œ๋งํฌ

๋ฌธ์ œํ’€์ด

๋ฌธ์ œ ์ž์ฒด๋Š” ํฌ๊ฒŒ ์–ด๋ ต์ง€ ์•Š์•˜๋˜ ๋ฌธ์ œ์ด๋‹ค. ๋‹ค๋งŒ, ์‹œ๊ฐ„๋ณต์žก๋„๋ฅผ ์ƒ๊ฐํ•ด์•ผ ํ•œ๋‹ค๋Š” ์ ์ด ๋ฌธ์ œ์˜ ํ•ต์‹ฌ์ธ ๊ฒƒ ๊ฐ™๋‹ค. ์ด์ „์—๋Š” ์–ด๋–ป๊ฒŒ๋“  ๋ฌธ์ œ๋งŒ ํ’€๋ฉด ๋˜๋Š” ์ค„ ์•Œ์•˜๋Š”๋ฐ ํšจ์œจ์„ฑ๋„ ๊ณ ๋ คํ•ด์„œ ํ’€์–ด์•ผ ๊ฒ ๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค.

๋ฌธ์ œ๋ฅผ ํ’€๋ฉด์„œ ๋ฐฐ์› ๋˜ ๊ฒƒ์€ sys๋ฅผ ํ™œ์šฉํ•ด์•ผ ๊ฒ ๋‹ค๋Š” ์ . ๊ทธ๋ฆฌ๊ณ  flag์™€ ๊ฐ™์ด ์–ด๋–ป๊ฒŒ ๋ณด๋ฉด ๋ฌธ์ œ๋ฅผ ๋” ์‰ฝ๊ฒŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ ์ด๋‹ค. ์ฒ˜์Œ๋ถ€ํ„ฐ๋Š” ์–ด๋ ต๊ฒ ์ง€๋งŒ ์—ฐ์Šตํ•˜๋Š” ๋ฒ„๋ฆ‡์„ ๋“ค์—ฌ์•ผ๊ฒ ๋‹ค.

์ฒซ ๋ฒˆ์žฌ ์ฝ”๋“œ๋Š” ์‹œ๊ฐ„ํšจ์œจ์„ฑ์—์„œ ์ดˆ๊ณผ๊ฐ€ ๋‚ฌ๋˜ ์ฝ”๋“œ์ด๊ณ  ๋‘ ๋ฒˆ์งธ ์ฝ”๋“œ๋Š” ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ์ฝ”๋“œ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ ํ’€์—ˆ๋˜ ์ฝ”๋“œ์ด๋‹ค. ์‹œ๊ฐ„๋‚  ๋•Œ ๋งˆ๋‹ค ๋น„๊ตํ•ด๋ด์•ผ ๊ฒ ๋‹ค.

์ฝ”๋“œ1

def func(p, arr_temp):
    temp = arr_temp

    if temp == '':
        return temp

    # ์ •์ˆ˜ํ˜• ๋ฐฐ์—ด๋กœ ๋งŒ๋“ฌ
    arr_case_to_list = list(map(int, arr_temp.split(',')))
    
    for i in p:
        if i == 'R':
            arr_case_to_list = arr_case_to_list[::-1]
        else:
            if len(arr_case_to_list) < 1:
                break
            else:
                arr_case_to_list.pop(0)
    return arr_case_to_list
            

T = int(input())    # ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค
answer = []

for _ in range(T):
    
    answer = []
    # ์ˆ˜ํ–‰ํ•  ํ•จ์ˆ˜ p
    p = input()
    # ๋ฐฐ์—ด์— ๋“ค์–ด์žˆ๋Š” ์ˆ˜์˜ ๊ฐœ์ˆ˜
    n = int(input())
    # ๋ฐฐ์—ด ์ž…๋ ฅ(๋ฌธ์ž์—ด ํ˜•ํƒœ)
    arr_case = input()

    # ์ •์ˆ˜ํ˜• ๋ฐฐ์—ด๋กœ ๋งŒ๋“ค๊ธฐ ์œ„ํ•ด ๋ฌธ์ž์—ด์˜ '[', ']'๋ถ€๋ถ„์„ ์ œ๊ฑฐ
    arr_case_temp = arr_case[1:-1]
    
    answer = func(p, arr_case_temp)

    if len(answer) == 0:
        print("error")
    else:
        print(answer)

์ฝ”๋“œ2

import sys
from collections import deque

T = int(sys.stdin.readline())

for _ in range(T):
   
   p = sys.stdin.readline()        # ์ˆ˜ํ–‰ํ•  ํ•จ์ˆ˜
   n = int(sys.stdin.readline())   # ๋ฐฐ์—ด์— ๋“ค์–ด์žˆ๋Š” ์ˆ˜์˜ ๊ฐœ์ˆ˜
   arr = sys.stdin.readline().rstrip()[1:-1].split(",")    # ๋ฐฐ์—ด

   queue = deque(arr)              # ๋ฑ ์ƒ์„ฑ

   reverse_flag = 0                # R ํ”Œ๋ž˜๊ทธ
   error_flag = 0                  # ์—๋Ÿฌ ํ”Œ๋ž˜๊ทธ

   # ๋ฐฐ์—ด์— ์•„๋ฌด๊ฒƒ๋„ ์—†์„ ๋•Œ
   if n == 0:
       queue = []

   for cmd in p:
       # "R"์ผ ๋•Œ ๋’ค์ง‘๊ธฐ ํ”Œ๋ž˜๊ทธ๋ฅผ 1์ถ”๊ฐ€
       if cmd == "R":
           reverse_flag += 1
       # "D"์ผ ๋•Œ ํ์— ์•„๋ฌด๊ฒƒ๋„ ์—†์œผ๋ฉด ์—๋Ÿฌ
       elif cmd == "D":
           if len(queue) < 1:
               error_flag = 1
               print("error")
               break
           # ๋’ค์ง‘๊ธฐ๊ฐ€ ์ง์ˆ˜์ด๋ฉด ์›๋ž˜๋Œ€๋กœ ์ฒซ ๋ฒˆ์งธ์—์„œ ๋นผ์คŒ
           else:
               if reverse_flag % 2 == 0:
                   queue.popleft()
               # ํ™€์ˆ˜์ด๋ฉด ๋’ค์—์„œ ๋นผ๋Š”๊ฒŒ ๋’ค์ง‘์—์„œ ๋นผ๋Š” ๊ฒƒ์ด๋ž‘ ๊ฐ™์€ ์›๋ฆฌ
               else:
                   queue.pop()

   if error_flag == 0:
       if reverse_flag % 2 == 0:
           print("[" + ",".join(queue) + "]")
       else:
           queue.reverse()
           print("[" + ",".join(queue) + "]")

๊ฒฐ๊ณผ

profile
๋‚ด๊ฐ€ ๊ทธ๋ฆฐ ๊ธฐ๋ฆฐ ๊ทธ๋ฆผ

0๊ฐœ์˜ ๋Œ“๊ธ€