๋ฌธ์
์ ์์ด๋ ์ฃผ๋ง์ ํ ์ผ์ด ์์ด์ ์๋ก์ด ์ธ์ด AC๋ฅผ ๋ง๋ค์๋ค. AC๋ ์ ์ ๋ฐฐ์ด์ ์ฐ์ฐ์ ํ๊ธฐ ์ํด ๋ง๋ ์ธ์ด์ด๋ค. ์ด ์ธ์ด์๋ ๋ ๊ฐ์ง ํจ์ R(๋ค์ง๊ธฐ)๊ณผ D(๋ฒ๋ฆฌ๊ธฐ)๊ฐ ์๋ค.
ํจ์ R์ ๋ฐฐ์ด์ ์๋ ์์ ์์๋ฅผ ๋ค์ง๋ ํจ์์ด๊ณ , D๋ ์ฒซ ๋ฒ์งธ ์๋ฅผ ๋ฒ๋ฆฌ๋ ํจ์์ด๋ค. ๋ฐฐ์ด์ด ๋น์ด์๋๋ฐ D๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ์๋ ์๋ฌ๊ฐ ๋ฐ์ํ๋ค.
ํจ์๋ ์กฐํฉํด์ ํ ๋ฒ์ ์ฌ์ฉํ ์ ์๋ค. ์๋ฅผ ๋ค์ด, "AB"๋ A๋ฅผ ์ํํ ๋ค์์ ๋ฐ๋ก ์ด์ด์ B๋ฅผ ์ํํ๋ ํจ์์ด๋ค. ์๋ฅผ ๋ค์ด, "RDD"๋ ๋ฐฐ์ด์ ๋ค์ง์ ๋ค์ ์ฒ์ ๋ ์๋ฅผ ๋ฒ๋ฆฌ๋ ํจ์์ด๋ค.
๋ฐฐ์ด์ ์ด๊ธฐ๊ฐ๊ณผ ์ํํ ํจ์๊ฐ ์ฃผ์ด์ก์ ๋, ์ต์ข ๊ฒฐ๊ณผ๋ฅผ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ํ ์คํธ ์ผ์ด์ค์ ๊ฐ์ T๊ฐ ์ฃผ์ด์ง๋ค. T๋ ์ต๋ 100์ด๋ค.
๊ฐ ํ ์คํธ ์ผ์ด์ค์ ์ฒซ์งธ ์ค์๋ ์ํํ ํจ์ p๊ฐ ์ฃผ์ด์ง๋ค. p์ ๊ธธ์ด๋ 1๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๊ณ , 100,000๋ณด๋ค ์๊ฑฐ๋ ๊ฐ๋ค.
๋ค์ ์ค์๋ ๋ฐฐ์ด์ ๋ค์ด์๋ ์์ ๊ฐ์ n์ด ์ฃผ์ด์ง๋ค. (0 ≤ n ≤ 100,000)
๋ค์ ์ค์๋ [x1,...,xn]๊ณผ ๊ฐ์ ํํ๋ก ๋ฐฐ์ด์ ๋ค์ด์๋ ์ ์๊ฐ ์ฃผ์ด์ง๋ค. (1 ≤ xi ≤ 100)
์ ์ฒด ํ ์คํธ ์ผ์ด์ค์ ์ฃผ์ด์ง๋ p์ ๊ธธ์ด์ ํฉ๊ณผ n์ ํฉ์ 70๋ง์ ๋์ง ์๋๋ค.
์ถ๋ ฅ
๊ฐ ํ ์คํธ ์ผ์ด์ค์ ๋ํด์, ์ ๋ ฅ์ผ๋ก ์ฃผ์ด์ง ์ ์ ๋ฐฐ์ด์ ํจ์๋ฅผ ์ํํ ๊ฒฐ๊ณผ๋ฅผ ์ถ๋ ฅํ๋ค. ๋ง์ฝ, ์๋ฌ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ์๋ error๋ฅผ ์ถ๋ ฅํ๋ค.
์์ ์ ๋ ฅ 1 ๋ณต์ฌ
4
RDD
4
[1,2,3,4]
DD
1
[42]
RRD
6
[1,1,2,3,5,8]
D
0
[]
์์ ์ถ๋ ฅ 1 ๋ณต์ฌ
[2,1]
error
[1,2,3,5,8]
error
# ํ์ด ๋ฐฉ๋ฒ
deque๋ก ์ ๊ทผํ ์๊ฐ์ ๋ชปํ์. ์๊ฐ ์ด๊ณผ ๋๋ฌธ์ ๋ฐ๋์ deque๋ก ๊ตฌํํ์ด์ผ ํจ
์ด ๋ฌธ์ ์์๋?
- ์ฐ์ฐ "D"๊ฐ ์์ด๋ ๋ค์์ ์์๋ฅผ ์ง์ฐ๋ ๋์์ด ๋ฐ๋ณต๋จ
- "R"์ด ๋ง์์ง๋ฉด ๋ฐฉํฅ์ด ๋ฐ๋์ด์ ์→๋ค / ๋ค→์ ์ญ์ ๊ฐ ๋ฒ๊ฐ์ ๋์ด
- ์ด ๊ฒฝ์ฐ ๋ฆฌ์คํธ๋ก arr[1:], arr[:-1] ๊ฐ์ ์ฐ์ฐ์ ๋งค๋ฒ ๋ณต์ฌ๋์ด ๋งค์ฐ ๋นํจ์จ์
- → deque๊ฐ ๋ฐ๋์ ํ์ํจ
โจ ์์ ํฌ์ธํธ ์์ฝ (list > deque)
- arr์ deque๋ก ๋ณํ
- reverse()๋ฅผ ์ญ์ ํ๊ณ is_reversed ํ๋๊ทธ ์ฌ์ฉ
- delete()๋ ๋ฐฉํฅ์ ๋ฐ๋ผ popleft() ๋๋ pop()์ ์ํ
- ์ต์ข ์ถ๋ ฅ ์ ๋ฐฉํฅ์ ๋ฐ๋ผ list(deque) ๋๋ reversed(deque)๋ฅผ ์ถ๋ ฅ
๐ map ํจ์ ์ฌ์ฉ ํ
์ํฉ/์ฝ๋/์์
๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ๋ ์ซ์ ์ ๋ ฅ | list(map(int, input().split())) |
๋ฌธ์์ด ๋ฆฌ์คํธ ์ซ์๋ก ๋ณํ | map(int, ['1', '2']) |
์ซ์๋ฅผ ๋ฌธ์์ด๋ก ๋ณํ | map(str, [1, 2, 3]) |
ํ ์ค๋ก ๋ณํ + ์ถ๋ ฅ | print(','.join(map(str, nums))) |
# ์ฝ๋
# 2025-05-15 20:25 - 21:05
from collections import deque
import sys
sys.stdin = open("input.txt","r")
'''
R(๋ค์ง๊ธฐ): ๋ฐฐ์ด์ ์๋ ์์ ์์๋ฅผ ๋ค์ง๋ ํจ์
D(๋ฒ๋ฆฌ๊ธฐ): ์ฒซ ๋ฒ์งธ ์๋ฅผ ๋ฒ๋ฆฌ๋ ํจ์ (๋ฐฐ์ด์ด ๋น์ด์๋๋ฐ D๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ์๋ ์๋ฌ)
'''
T = int(sys.stdin.readline().strip())
def func(p, arr):
is_reversed = False
for pp in p:
if pp == 'R':
is_reversed = not is_reversed
elif pp == 'D':
if len(arr) == 0:
print('error'); return
if is_reversed:
arr.pop()
else:
arr.popleft()
if is_reversed:
arr.reverse()
print('[' + ','.join(map(str,arr)) + ']')
for _ in range(T):
p = list(sys.stdin.readline().strip())
n = int(sys.stdin.readline().strip())
if n != 0:
arr = sys.stdin.readline().strip()[1:-1].split(',')
arr = deque(map(int,arr))
elif n == 0:
sys.stdin.readline()
arr = deque()
func(p, arr)
# ์ฐธ๊ณ (๋ฆฌ์คํธ๋ฒ์ _์๊ฐ์ด๊ณผ)
# 2025-05-15 20:25 - 21:05
import sys
sys.stdin = open("input.txt","r")
'''
R(๋ค์ง๊ธฐ): ๋ฐฐ์ด์ ์๋ ์์ ์์๋ฅผ ๋ค์ง๋ ํจ์
D(๋ฒ๋ฆฌ๊ธฐ): ์ฒซ ๋ฒ์งธ ์๋ฅผ ๋ฒ๋ฆฌ๋ ํจ์ (๋ฐฐ์ด์ด ๋น์ด์๋๋ฐ D๋ฅผ ์ฌ์ฉํ ๊ฒฝ์ฐ์๋ ์๋ฌ)
'''
T = int(sys.stdin.readline().strip())
def reverse(arr):
arr_arr = []
for i in range(len(arr)-1, -1, -1):
arr_arr.append(arr[i])
return arr_arr
def delete(arr):
return arr[1:]
def func(p, arr):
for pp in p:
if pp == 'R':
arr = reverse(arr)
elif pp == 'D':
if len(arr) == 0:
print('error'); return
arr = delete(arr)
result = '['
for a in arr:
result += f'{str(a)},'
result = result[:-1] + ']'
print(result)
for _ in range(T):
p = list(sys.stdin.readline().strip())
n = int(sys.stdin.readline().strip())
if n != 0:
arr = sys.stdin.readline().strip()[1:-1].split(',')
arr = list(map(int,arr))
elif n == 0:
sys.stdin.readline()
arr = []
func(p, arr)
'๐ Study > Baekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Gold V] 16719 - ZOAC (0) | 2025.05.12 |
---|---|
[Silver I] 1495 - ๊ธฐํ๋ฆฌ์คํธ (0) | 2025.05.11 |
[Gold IV] 32187 - ๊ธ์ ๋ฐฐ์ (0) | 2025.05.10 |
[Gold V] 1931 - ํ์์ค ๋ฐฐ์ (0) | 2025.05.10 |
[Gold V] 20207 - ๋ฌ๋ ฅ (0) | 2025.05.09 |