ํฐ์คํ ๋ฆฌ ๋ทฐ
728x90
๐ฉ ์๋ฃ๊ตฌ์กฐ, ๋ฌธ์์ด, ํ์ฑ, ๋ฑ
thinking
0 ≤ p ≤ 100,000 , 0 ≤ n ≤ 100,000 ์ด๋ผ ๋ฆฌํฐ๋ด๋ฆฌ ์ฐ์ฐํ๋ฉด ์๊ฐ์ด๊ณผ ๋ ๊ฑฐ ๊ฐ์์ ๊ท์น์ ์ฐพ์๋ดค๋ค.
- R์ด ์ฐ์ํด์ ํ์๊ฐ๋ฉด ๋ค์ง๊ณ , ์ง์๊ฐ๋ฉด ๊ฑ ๊ทธ๋๋ก
- D๋ ์ฐ์ํ ๊ฐ์๋งํผ ์ญ์
=> R ํ์ง ์ฒดํนํ flag๋ณ์ ๋ง๋ค๊ณ , p์ฐ์ฐ ๋๋ฉด์ ์์์๋ถํฐ ์ญ์ ํ ๊ฐ์๋ ๋ค์์๋ถํฐ ์ญ์ ํ ๊ฐ์ ์ฐพ์์ ์ญ์
์ฝ๋
def sol(p, n):
flag = 0 # ์ง
delete = [0, 0]
# ํ์ด๋ฉด ๋ค์ง(๋ท ์ซ์ ์ญ์ ), ์ง์ด๋ฉด stay(์ ์ซ์ ์ญ์ )
for s in p:
if s == 'R' and flag == 0:
flag = 1
elif s == 'R' and flag == 1:
flag = 0
elif s == 'D' and flag == 0:
delete[0] += 1
elif s == 'D' and flag == 1:
delete[1] += 1
if sum(delete) >= n:
return 'error'
# ์ญ์ ํ๊ณ ๋ค์ง
res = num_lst[delete[0]:len(num_lst) - delete[1]]
if flag:
res.reverse()
return "["+",".join(res)+"]"
T = int(input())
for tc in range(1, T+1):
p = input() # ์ํํ ์ฐ์ฐ
n = int(input()) # ๋ฐฐ์ด์ ๋ค์ด์๋ ์ซ์ ๊ฐ์
num_lst = input().lstrip('[').rstrip(']').split(',')
print(sol(p, n))
ํ๊ธฐ
๋ฐฑ์ค ์๊ณ ๋ฆฌ์ฆ ๋ถ๋ฅ์ ๋ฑ์ด๋ผ๊ณ ๋์ด์์ด ๋ฑ์ด ๋ญ๊ฐ ์ฐพ์๋ดค๋๋ deque ์๋ค ใ ;;;;
์ฌํ ๋ํ๋ผ๊ณ ํ๊ณ ์ด์๋ค;;^^;;
deque ๋ ? ์๋ฐฉํฅ์ผ๋ก ๋ฃ๊ณ ๋บ ์ ์๋ ํ
๋๋ ๋ฑ์ผ๋ก ์ํ์๋๋ฐ ๋ฑ์ผ๋ก ํ ์๋ ์๋ค.
'algorithm > baekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] 7576. ํ ๋งํ / python ํ์ด์ฌ (0) | 2021.06.02 |
---|---|
[๋ฐฑ์ค] 14889. ์คํํธ์ ๋งํฌ / python ํ์ด์ฌ (0) | 2021.06.02 |
[๋ฐฑ์ค] 1931๋ฒ. ํ์์ค ๋ฐฐ์ / python ํ์ด์ฌ (0) | 2021.06.02 |
[๋ฐฑ์ค] 1780. ์ข ์ด์ ๊ฐ์ / python ํ์ด์ฌ (0) | 2021.06.02 |
[๋ฐฑ์ค] 2178. ๋ฏธ๋ก ํ์ / python ํ์ด์ฌ (0) | 2021.06.02 |
๋๊ธ
๊ธ ๋ณด๊ดํจ
TAG
- react
- ์์ด๋๋ง์๊ธฐ
- dp
- ํ์ด์ฌ
- 2579 ๊ณ๋จ์ค๋ฅด๊ธฐ
- ๋ธ๋ฃจํธํฌ์ค
- 20057 ๋ง๋ฒ์ฌ ์์ด์ ํ ๋ค์ด๋
- ๋ณด์์ผํ
- ๋ฐฑ์ค
- 20056 ๋ง๋ฒ์ฌ ์์ด์ ํ์ด์ด๋ณผ
- swea
- ๊ธฐ์ง๊ตญ์ค์น
- ์๊ณ ๋ฆฌ์ฆ
- Python
- 2018 ์นด์นด์ค ๊ณต์ฑ
- dfs
- git ๋ฏธ๋ฌ๋ง
- ์ผ์ฑ์ฝํ
- 21609 ์์ด ์คํ๊ต
- ์ผ์ฑ๊ธฐ์ถ
- merge ์๋ฌ
- BFS
- 17406 ๋ฐฐ์ด๋๋ฆฌ๊ธฐ4
- merge์๋ฌ
- ํ๋ก๊ทธ๋๋จธ์ค
์ต๊ทผ์ ์ฌ๋ผ์จ ๊ธ
- Total
- Today
- Yesterday
์ต๊ทผ์ ๋ฌ๋ฆฐ ๋๊ธ