[BaekJoon] ๋ฐฑ์ค€ 5430๋ฒˆ : AC

Updated:

5430๋ฒˆ : AC

AC
stair2


์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๊ณ ์ˆ˜๋“ค์€ ์ตœ์•…์˜ ๊ฒฝ์šฐ๋ฅผ ๋”ฐ์ ธ์„œ ์–ด๋Š ์ •๋„์˜ ํšจ์œจ์„ ๊ฐ€์ง„ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์งœ์•ผ ํ†ต๊ณผ ๋ ์ง€ ๋ฏธ๋ฆฌ ์ƒ๊ฐํ•œ๋‹ค๊ณ  ํ•œ๋‹ค.

๋Œ€์ฒด๋กœ ์—ฐ์‚ฐ ํšŸ์ˆ˜๊ฐ€ 5์–ต์„ ๋„˜์–ด๊ฐ€๋Š” ๊ฒฝ์šฐ 1์ดˆ ์ด์ƒ์ด ๊ฑธ๋ฆฐ๋‹ค๊ณ  ํ•œ๋‹ค.

๊ทผ๋ฐ ๋Œ€์ถฉ ๊ณ„์‚ฐํ•ด๋ด๋„ ํ…Œ์ŠคํŠธ์ผ€์ด์Šค 100๊ฐœ, ๋ช…๋ น ์ตœ๋Œ€ 100,000๊ฐœ, ๋ฐฐ์—ด ๊ธธ์ด ์ตœ๋Œ€ 100,000 ๋ฉด ์–ด๋งˆ๋ฌด์‹œํ•˜๋‹ค.

๋ฐฐ์—ด์„ ๋’ค์ง‘๋Š” ๋ช…๋ น์ธ R ๋งŒ 100,000 ๊ฐœ๊ฐ€ ์žˆ๊ณ  ๋ฐฐ์—ด ๊ธธ์ด๊ฐ€ 100,000 ์ด๊ณ  ์ด ๊ฒฝ์šฐ๊ฐ€ 100 ๊ฐœ ๋ผ๋ฉด ์ ˆ๋Œ€ 1์ดˆ๋Š” ์•ˆ๋œ๋‹ค.

๋”ฐ๋ผ์„œ R ์ผ๋•Œ๋Š” ์ •๋ง ๋’ค์ง‘์ง€ ๋ง๊ณ  ๋’ค์ง‘์—ˆ๋‹ค๊ณ  ์ƒ๊ฐ ํ•˜๊ณ  ์ž‘์—…์„ ํ•˜๋ฉด ๋œ๋‹ค.

D ์ผ ๋•Œ๋Š” ๋ฐฐ์—ด์˜ ๋งจ ์•ž์˜ ์›์†Œ๋ฅผ ์ง€์šด๋‹ค, ๊ทธ๋ ‡๋‹ค๋ฉด ๋’ค์ง‘์—ˆ๋‹ค๊ณ  ์ƒ๊ฐ ํ•  ๋•Œ๋Š” ๋งจ ๋’ค์˜ ์›์†Œ๋ฅผ ์ง€์šฐ๋ฉด ๋œ๋‹ค.

D ๊ฐ€ ๋‚˜์˜ฌ ๋•Œ ๊นŒ์ง€ R ๊ฐœ์ˆ˜๋ฅผ ์„ธ๊ณ  R ๊ฐœ์ˆ˜๊ฐ€ ์ง์ˆ˜๋ผ๋ฉด ์ •์ˆœ, ํ™€์ˆ˜๋ผ๋ฉด ์—ญ์ˆœ์œผ๋กœ ์ƒ๊ฐํ•˜๊ณ  ์›์†Œ๋ฅผ ์ง€์šฐ๋ฉด ๋œ๋‹ค.

๋งˆ์ง€๋ง‰์œผ๋กœ R ์ด ๋‚˜์˜จ ์ด ๊ฐœ์ˆ˜๋ฅผ ๊ฐ€์ง€๊ณ  ๋’ค์ง‘์–ด์ง„ ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ• ์ง€ ์ •์ˆœ์ธ ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ• ์ง€ ์ •ํ•˜๋ฉด ๋œ๋‹ค.

์ด๋ ‡๊ฒŒ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์งœ๊ณ  ์ œ์ถœ์„ ํ–ˆ๋Š”๋ฐ ํ‹€๋ ธ์Šต๋‹ˆ๋‹ค! ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์™”๋‹ค.

์•„๋ฌด๋ฆฌ ๋ด๋„ ํ‹€๋ฆฐ ๊ณณ์ด ์—†๋Š”๋ฐ ๋ฌธ์ œ๋Š” ์ถœ๋ ฅ ํ˜•ํƒœ์˜€๋‹ค..

์Šคํฌ๋ฆฐ์ƒท 2020-09-14 ์˜ค์ „ 1 35 27


๊ฐ€๋งŒ ๋ณด๋ฉด ์ถœ๋ ฅ ํ•ด์•ผ ํ•  ๋ฆฌ์ŠคํŠธ ํ˜•์‹์ด [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))

Categories:

Updated:

Leave a comment