๐Ÿค– ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์ค€๋น„/๋ฐฑ์ค€์•Œ๊ณ ๋ฆฌ์ฆ˜

11. ๋ฐฑ์ค€ ํŒŒ์ด์ฌ #1406 [์—๋””ํ„ฐ]

seoyeun 2021. 12. 16. 01:09
๋ฌธ์ œ์„ค๋ช…
: ์ด ํŽธ์ง‘๊ธฐ๋Š” ์˜์–ด ์†Œ๋ฌธ์ž๋งŒ์„ ๊ธฐ๋กํ•  ์ˆ˜ ์žˆ๋Š” ํŽธ์ง‘๊ธฐ๋กœ, ์ตœ๋Œ€ 600,000๊ธ€์ž๊นŒ์ง€ ์ž…๋ ฅํ•  ์ˆ˜ ์žˆ๋‹ค.
์ด ํŽธ์ง‘๊ธฐ์—๋Š” '์ปค์„œ'๋ผ๋Š” ๊ฒƒ์ด ์žˆ๋Š”๋ฐ, ์ปค์„œ๋Š” ๋ฌธ์žฅ์˜ ๋งจ ์•ž(์ฒซ ๋ฒˆ์งธ ๋ฌธ์ž์˜ ์™ผ์ชฝ), ๋ฌธ์žฅ์˜ ๋งจ ๋’ค(๋งˆ์ง€๋ง‰ ๋ฌธ์ž์˜ ์˜ค๋ฅธ์ชฝ), ๋˜๋Š” ๋ฌธ์žฅ ์ค‘๊ฐ„ ์ž„์˜์˜ ๊ณณ(๋ชจ๋“  ์—ฐ์†๋œ ๋‘ ๋ฌธ์ž ์‚ฌ์ด)์— ์œ„์น˜ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰ ๊ธธ์ด๊ฐ€ L์ธ ๋ฌธ์ž์—ด์ด ํ˜„์žฌ ํŽธ์ง‘๊ธฐ์— ์ž…๋ ฅ๋˜์–ด ์žˆ์œผ๋ฉด, ์ปค์„œ๊ฐ€ ์œ„์น˜ํ•  ์ˆ˜ ์žˆ๋Š” ๊ณณ์€ L+1๊ฐ€์ง€ ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค.

์ด ํŽธ์ง‘๊ธฐ๊ฐ€ ์ง€์›ํ•˜๋Š” ๋ช…๋ น์–ด๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
L : ์ปค์„œ๋ฅผ ์™ผ์ชฝ์œผ๋กœ ํ•œ ์นธ ์˜ฎ๊น€ (์ปค์„œ๊ฐ€ ๋ฌธ์žฅ์˜ ๋งจ ์•ž์ด๋ฉด ๋ฌด์‹œ๋จ)
D : ์ปค์„œ๋ฅผ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ํ•œ ์นธ ์˜ฎ๊น€ (์ปค์„œ๊ฐ€ ๋ฌธ์žฅ์˜ ๋งจ ๋’ค์ด๋ฉด ๋ฌด์‹œ๋จ)
B : ์ปค์„œ ์™ผ์ชฝ์— ์žˆ๋Š” ๋ฌธ์ž๋ฅผ ์‚ญ์ œํ•จ (์ปค์„œ๊ฐ€ ๋ฌธ์žฅ์˜ ๋งจ ์•ž์ด๋ฉด ๋ฌด์‹œ๋จ)
์‚ญ์ œ๋กœ ์ธํ•ด ์ปค์„œ๋Š” ํ•œ ์นธ ์™ผ์ชฝ์œผ๋กœ ์ด๋™ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ๋‚˜ํƒ€๋‚˜์ง€๋งŒ, ์‹ค์ œ๋กœ ์ปค์„œ์˜ ์˜ค๋ฅธ์ชฝ์— ์žˆ๋˜ ๋ฌธ์ž๋Š” ๊ทธ๋Œ€๋กœ์ž„
P$ : $๋ผ๋Š” ๋ฌธ์ž๋ฅผ ์ปค์„œ ์™ผ์ชฝ์— ์ถ”๊ฐ€ํ•จ

 

๋ฌธ์ œ ํ’€์ด

 -> ์ด๋ ‡๊ฒŒ ํ’€์—ˆ๋”๋‹ˆ ๋Ÿฐํƒ€์ž„ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ–ˆ๋‹ค...๐Ÿ˜…

import sys
string_list = sys.stdin.readline()
cursor = len(string_list)

for _ in range(int(input())):
    command = list(input().split())
    if command[0] == 'P':
        string_list.insert(cursor, command[1])
        cursor += 1
  
    elif command[0] == 'L':
        if cursor > 0:
            cursor -= 1

    elif command[0] =='D':
        if cursor < len(string_list):
            cursor += 1
  
    else:
        if cursor > 0:
            string_list.remove(string_list[cursor-1])

print(''.join(string_list))

 

# ๋‹ค๋ฅธ ์‚ฌ๋žŒ ํ’€์ด

append.pop ์œผ๋กœ ํ’€์—ˆ์–ด์•ผ ํ–ˆ๋‹ค... ๐Ÿง

import sys
s1 = list(sys.stdin.readline().strip())
s2 = []
m = int(sys.stdin.readline())
n = len(s1)

for i in range(m):
    com = sys.stdin.readline().strip()
    if com[0] == 'P':
        s1.append(com[2]) #์ฒซ๋ฒˆ์งธ ์Šคํƒ์— ์ถ”๊ฐ€
    elif com[0] == 'L' and s1 != []:
		s2.append(s1.pop()) #์ปค์„œ๊ฐ€ ์™ผ์ชฝ์œผ๋กœ ๊ฐ„๋‹ค๋Š” ๊ฒƒ์€ ์ฒซ๋ฒˆ์งธ ์Šคํƒ์—์„œ pop ํ•œ๊ฒƒ์„ ๋‘๋ฒˆ์งธ๋กœ ์˜ฎ๊ฒจ์คŒ
	elif com[0] == 'D' and s2 != []:
		s1.append(s2.pop()) #์ปค์„œ๊ฐ€ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ๊ฐ„๋‹ค๋Š” ๊ฒƒ์€ ๋‘๋ฒˆ์งธ ์Šคํƒ์—์„œ pop ํ•œ๊ฒƒ์„ ์ฒซ๋ฒˆ์งธ๋กœ ์˜ฎ๊ฒจ์คŒ
	elif com[0] == 'B' and s1 != []:
		s1.pop()
print("".join(s1+ist(reversed(s2))))

https://www.acmicpc.net/problem/1406

 

1406๋ฒˆ: ์—๋””ํ„ฐ

์ฒซ์งธ ์ค„์—๋Š” ์ดˆ๊ธฐ์— ํŽธ์ง‘๊ธฐ์— ์ž…๋ ฅ๋˜์–ด ์žˆ๋Š” ๋ฌธ์ž์—ด์ด ์ฃผ์–ด์ง„๋‹ค. ์ด ๋ฌธ์ž์—ด์€ ๊ธธ์ด๊ฐ€ N์ด๊ณ , ์˜์–ด ์†Œ๋ฌธ์ž๋กœ๋งŒ ์ด๋ฃจ์–ด์ ธ ์žˆ์œผ๋ฉฐ, ๊ธธ์ด๋Š” 100,000์„ ๋„˜์ง€ ์•Š๋Š”๋‹ค. ๋‘˜์งธ ์ค„์—๋Š” ์ž…๋ ฅํ•  ๋ช…๋ น์–ด์˜ ๊ฐœ์ˆ˜

www.acmicpc.net