๐ฉโ๐ป๐ [baekjoon] 5430๋ฒ: AC
๐๏ธย 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