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

๐Ÿ“š Problem Solving/Baekjoon

 

5430๋ฒˆ: AC

๊ฐ ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค์— ๋Œ€ํ•ด์„œ, ์ž…๋ ฅ์œผ๋กœ ์ฃผ์–ด์ง„ ์ •์ˆ˜ ๋ฐฐ์—ด์— ํ•จ์ˆ˜๋ฅผ ์ˆ˜ํ–‰ํ•œ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. ๋งŒ์•ฝ, ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ ๊ฒฝ์šฐ์—๋Š” error๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

www.acmicpc.net

import sys


def AC(command, data, n):
    command.replace("RR", "")
    l, r, d = 0, 0, True
    for c in command:
        if c == "R":
            d = not d
        elif c == "D":
            if d:
                l += 1
            else:
                r += 1
    if l + r <= n:
        answer = data[l : n - r]
        if d:
            return "[" + ",".join(answer) + "]"
        else:
            return "[" + ",".join(answer[::-1]) + "]"
    else:
        return "error"


input = sys.stdin.readline
for _ in range(int(input())):
    command = input()
    n = int(input())
    data = input().rstrip()[1:-1].split(",")
    if n == 0:
        data = []
    print(AC(command, data, n))

 

ํ•ด์„ค

๋ช…๋ น์–ด๋งˆ๋‹ค pop์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์™ผ์ชฝ์—์„œ ์ง€์šฐ๋Š” ์ˆ˜์™€ ์˜ค๋ฅธ์ชฝ์—์„œ ์ง€์šฐ๋Š” ์ˆ˜๋ฅผ ์„ผ ํ›„ ์ผ๊ด„์ ์œผ๋กœ ์ง€์› ๋‹ค.

์—ฌ๊ธฐ์„œ l๊ณผ r์€ ๊ฐ ๋ฐฉํ–ฅ์—์„œ ์ง€์›Œ์ง€๋Š” ๊ฐœ์ˆ˜์ด๊ณ , d๋Š” ์™ผ์ชฝ์ธ์ง€ ์˜ค๋ฅธ์ชฝ์ธ์ง€ ๋ฐฉํ–ฅ์„ ๋‚˜ํƒ€๋‚ธ๋‹ค.