[BOJ][๐ก5][๋ฐฑ์ค#05430] AC
์์ฑ:    
์ ๋ฐ์ดํธ:
์นดํ ๊ณ ๋ฆฌ: BOJ Gold V
๋ฌธ์ ์ถ์ฒ
๋ฌธ์
์ ์์ด๋ ์ฃผ๋ง์ ํ ์ผ์ด ์์ด์ ์๋ก์ด ์ธ์ด 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๋ฅผ ์ถ๋ ฅํ๋ค.
์์
์ ๋ ฅ
4
RDD
4
[1,2,3,4]
DD
1
[42]
RRD
6
[1,1,2,3,5,8]
D
0
[]
์ถ๋ ฅ
[2,1]
error
[1,2,3,5,8]
error
My Sol
import sys
input = sys.stdin.readline
from collections import deque
def main():
txt = input().rstrip()
N = int(input())
content = input().rstrip().strip('[').strip(']')
Q = deque(content.split(',')) if content else deque()
opp = 0
for t in txt:
# ํจ์๊ฐ R์ด๋ฉด ๋ฐฉํฅ ๋ฐ๊ฟ
if t == 'R':
opp ^= 1
continue
# ํจ์๊ฐ D์ธ๋ฐ Q๊ฐ ์์ผ๋ฉด error
if not Q: return 'error'
# ์ ๋ฐฉํฅ์ด๋ฉด popleft ์ญ๋ฐฉํฅ์ด๋ฉด pop
Q.pop() if opp else Q.popleft()
# ์ญ๋ฐฉํฅ์ด๋ผ๋ฉด Q๋ฅผ ์ญ์์ผ๋ก ๋ฐฐ์น
if opp: Q.reverse()
return f"[{','.join(Q)}]"
T = int(input())
for _ in range(T):
print(main())
deque๋ฅผ ํ์ฉํ๋ ๋ฌธ์ ์๋ค. ๋์ด๋๊ฐ ๋ง ์ด๋ ต์ง๋ ์์์ง๋ง, ๋ฌธ์ ์ ์ ์ถ๋ ฅ ํ์์ด ์ผ๋ฐ์ ์ด์ง ์์ ์๊ณ ๋ฆฌ์ฆ ์ธ์ ์ธ ํ์์ ์ธ ์ด๋ ค์์ ๊ฒช์๋ค.
์ฐ์ ํจ์์ ๋ฆฌ์คํธ์ ์ค๋ฅธ์ชฝ์ ์ฌ๋ฐฑ์ด ์๊ธฐ ๋๋ฌธ์ rstrip()์ ํตํด์ ์ฌ๋ฐฑ์ ์ ๊ฑฐํด์ฃผ์ด์ผ ํ๋ค.
ํต์ฌ์ ์ค์ ๋ก ๋ฆฌ์คํธ์ ์ ์ญ์์ ๋ฐ๊พธ๋ ๊ฒ์ด ์๋๋ผ, ์์๋ฅผ ์ฒดํฌํด ์๋ค์ ์์๋ฅผ ๋นผ์ฃผ๋ ๊ฒ์ด๋ค. deque์ pop๊ณผ popleft ๋ฉ์๋๋ฅผ ์ด์ฉํ๊ณ , opp๋ผ๋ ์ค์์น ๋ณ์๋ฅผ ๋์๋ค. ์ฒ์์๋ 0์ผ๋ก ๋์ด ์ ์์์ ์๋ฏธํ๊ณ , ๋ง์ฝ R์ ๋ง์ฃผํ ๋๋ง๋ค ๋นํธ ์ฐ์ฐ xor๋ก 1๊ณผ 0์ ๋ฐ๊ฟ์ฃผ์๋ค.
๋ง์ฝ R์ด ์๋๋ผ๋ฉด D์ธ๋ฐ ์ด๋ Q์ ์์๊ฐ ์๋ค๋ฉด ๋ฐ๋ก error์ returnํ๊ณ , ๊ทธ๊ฒ์ด ์๋๋ผ๋ฉด opp์ ๋ฐ๋ผ ์๋ค์ ์์๋ฅผ ๋ฐ๊ฟ์ ๋นผ๋ด์ค๋ค.
์ด ๊ณผ์ ์ ๋ชจ๋ ๊ฑฐ์น ๋ค, opp๊ฐ ์๋ค๋ฉด, ์ฆ ์ญ์์ด๋ผ๋ฉด Q๋ฅผ reverseํด์ ์ถ๋ ฅ ํ์์ ๋ง์ถ ์ค๋น๋ฅผ ํ๋ค.
f-string๊ณผ join์ ์ด์ฉํด ๊ณต๋ฐฑ ์๋ comma๋ก ์์๊ฐ ๊ตฌ๋ถ์ ํ์ฌ returnํ๋ค.
mainํจ์ ์ธ๋ถ์์๋ ์ด๋ฅผ ์ถ๋ ฅํ๊ธฐ๋ง ํ๋ฉด ๋๊ฒ ๋ค.
๊ฒฐ๊ณผ
๋ง์์ต๋๋ค!!
์ฝ 3๋ฌ ์ ์ ์๋ํ๋ค๊ฐ ์คํจํ๊ณ , 1๋ฌ ์ ์ ์๋ํ๋ค๊ฐ ์คํจํ๋๋ฐ, ์ค๋ ๊ฝค๋ ์ฝ๊ฒ ํด๊ฒฐํ ๊ฒ ๊ฐ์์ ๋๋ผ์ ๋ค.
๋ฐฑ์ค ๊ณจ๋1์ ์ฒซ ๋ฐ์ ๋ด๋๋ PS๊ฐ ์ด์ ์ ์คํจ๋ฅผ ๊ทน๋ณตํ PS์ฌ์ ๋๋ฌด๋ ์๋ฏธ ์๊ณ ๊ธฐ์๋ค.
๋๊ธ๋จ๊ธฐ๊ธฐ