[BaekJoon] ๋ฐฑ์ค 5430๋ฒ : AC
Updated:
5430๋ฒ : AC
์ฝ๋ฉํ ์คํธ ๊ณ ์๋ค์ ์ต์ ์ ๊ฒฝ์ฐ๋ฅผ ๋ฐ์ ธ์ ์ด๋ ์ ๋์ ํจ์จ์ ๊ฐ์ง ์๊ณ ๋ฆฌ์ฆ์ ์ง์ผ ํต๊ณผ ๋ ์ง ๋ฏธ๋ฆฌ ์๊ฐํ๋ค๊ณ ํ๋ค.
๋์ฒด๋ก ์ฐ์ฐ ํ์๊ฐ 5์ต์ ๋์ด๊ฐ๋ ๊ฒฝ์ฐ 1์ด ์ด์์ด ๊ฑธ๋ฆฐ๋ค๊ณ ํ๋ค.
๊ทผ๋ฐ ๋์ถฉ ๊ณ์ฐํด๋ด๋ ํ ์คํธ์ผ์ด์ค 100๊ฐ, ๋ช ๋ น ์ต๋ 100,000๊ฐ, ๋ฐฐ์ด ๊ธธ์ด ์ต๋ 100,000 ๋ฉด ์ด๋ง๋ฌด์ํ๋ค.
๋ฐฐ์ด์ ๋ค์ง๋ ๋ช ๋ น์ธ R ๋ง 100,000 ๊ฐ๊ฐ ์๊ณ ๋ฐฐ์ด ๊ธธ์ด๊ฐ 100,000 ์ด๊ณ ์ด ๊ฒฝ์ฐ๊ฐ 100 ๊ฐ ๋ผ๋ฉด ์ ๋ 1์ด๋ ์๋๋ค.
๋ฐ๋ผ์ R ์ผ๋๋ ์ ๋ง ๋ค์ง์ง ๋ง๊ณ ๋ค์ง์๋ค๊ณ ์๊ฐ ํ๊ณ ์์ ์ ํ๋ฉด ๋๋ค.
D ์ผ ๋๋ ๋ฐฐ์ด์ ๋งจ ์์ ์์๋ฅผ ์ง์ด๋ค, ๊ทธ๋ ๋ค๋ฉด ๋ค์ง์๋ค๊ณ ์๊ฐ ํ ๋๋ ๋งจ ๋ค์ ์์๋ฅผ ์ง์ฐ๋ฉด ๋๋ค.
D ๊ฐ ๋์ฌ ๋ ๊น์ง R ๊ฐ์๋ฅผ ์ธ๊ณ R ๊ฐ์๊ฐ ์ง์๋ผ๋ฉด ์ ์, ํ์๋ผ๋ฉด ์ญ์์ผ๋ก ์๊ฐํ๊ณ ์์๋ฅผ ์ง์ฐ๋ฉด ๋๋ค.
๋ง์ง๋ง์ผ๋ก R ์ด ๋์จ ์ด ๊ฐ์๋ฅผ ๊ฐ์ง๊ณ ๋ค์ง์ด์ง ๋ฐฐ์ด์ ๋ฐํํ ์ง ์ ์์ธ ๋ฐฐ์ด์ ๋ฐํํ ์ง ์ ํ๋ฉด ๋๋ค.
์ด๋ ๊ฒ ์๊ณ ๋ฆฌ์ฆ์ ์ง๊ณ ์ ์ถ์ ํ๋๋ฐ ํ๋ ธ์ต๋๋ค! ๊ฒฐ๊ณผ๊ฐ ๋์๋ค.
์๋ฌด๋ฆฌ ๋ด๋ ํ๋ฆฐ ๊ณณ์ด ์๋๋ฐ ๋ฌธ์ ๋ ์ถ๋ ฅ ํํ์๋ค..
๊ฐ๋ง ๋ณด๋ฉด ์ถ๋ ฅ ํด์ผ ํ ๋ฆฌ์คํธ ํ์์ด [2,1] ๋ก ์ซ์๋ผ๋ฆฌ ๋ถ์ด์๋ค..
ํ์ด์ฌ์ ๋ฆฌ์คํธ ๊ทธ๋๋ก๋ฅผ ๋ฐํํ๋ฉด [2, 1] ๊ฐ์ด ์ซ์๊ฐ ๋จ์ด์ ธ์ ๋์จ๋ค..
์ด์ฐ๋๋ ๊ทธ๋์ join ์ ํตํด ๋ฌธ์์ด๋ก ๋ฐ๊พธ๊ณ ์ ๋ค๋ก [ ] ๋ฅผ ๋ถ์ฌ์ฃผ๋ ํต๊ณผ๋๋ค.
import sys
import re
from collections import deque
def do_func(arr, func):
R_cnt = 0
for val in func:
if val == 'R':
R_cnt += 1
if val == 'D':
if R_cnt % 2 == 0:
try:
arr.popleft()
except IndexError:
return 'error'
elif R_cnt % 2 != 0:
try:
arr.pop()
except IndexError:
return 'error'
if R_cnt % 2 != 0:
arr.reverse()
return '[' + ','.join([str(x) for x in arr]) + ']'
testcase = int(input())
for _ in range(testcase):
func = sys.stdin.readline().rsplit()[0]
arr_size = int(sys.stdin.readline().rsplit()[0])
if arr_size:
arr = deque(map(int, re.split('[,]', sys.stdin.readline().rsplit()[0][1:-1])))
else:
sys.stdin.readline().rsplit()
arr = deque([])
print(do_func(arr, func))
Leave a comment