SWEA 5122 ์ˆ˜์—ดํŽธ์ง‘

๋ฌธ์ œ์ถœ์ฒ˜ SW Expert Academy
๋ฌธ์ œ์˜ ์ €์ž‘๊ถŒ์€ SW Expert Academy์— ์žˆ์Šต๋‹ˆ๋‹ค.

๋ฌธ์ œ์†Œ๊ฐœ

- N๊ฐœ์˜ ์ˆซ์ž๋กœ ๊ตฌ์„ฑ๋œ ์ตœ์ดˆ์ˆ˜์—ด์ด M๋ฒˆ์˜ ํŽธ์ง‘์„ ๊ฑฐ์นœ ํ›„ ์™„์„ฑ
- ์™„์„ฑ๋œ ์ˆ˜์—ด์—์„œ ์ธ๋ฑ์Šค L์„ ์ถœ๋ ฅํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.
- ๋‹จ, ์ธ๋ฑ์Šค L์ด ์กด์žฌํ•˜์ง€ ์•Š์œผ๋ฉด -1์„ ์ถœ๋ ฅ

์ž…๋ ฅ:
1
5 3 4 (N, M, K ์ตœ์ดˆ์ˆ˜์—ด๊ธธ์ด 5, ํŽธ์ง‘ 3๋ฒˆ, ์ธ๋ฑ์Šค 4 ์ถœ๋ ฅ)
1 2 3 4 5 (์ตœ์ดˆ์ˆ˜์—ด)
I 2 7 (I ๋„ฃ๊ธฐ , 2๋ฒˆ ์ธ๋ฑ์Šค ์•ž, 7 ์ถ”๊ฐ€)
D 4   (D ์‚ญ์ œ, 4๋ฒˆ ์ธ๋ฑ์Šค)
C 3 8 (C ๋ณ€๊ฒฝ, 3๋ฒˆ ์ธ๋ฑ์Šค๋ฅผ, 8๋กœ)

์ถœ๋ ฅ:
#1 5

ํ’€์ด์ ‘๊ทผ

- if ๋ฌธ ํ™œ์šฉํ•ด์„œ I, D, C ๋ฒ•์น™ ์ ์šฉ
- I -> insert, D -> pop, C -> '=' ํ™œ์šฉ

์ฝ”๋“œ

for tc in range(1, int(input()) + 1):
    N, M, L = map(int, input().split()) # N๊ฐœ์˜ ์ˆซ์ž, M๋ฒˆ ํŽธ์ง‘, ์ธ๋ฑ์Šค L ์ถœ๋ ฅ
    array = list(map(int, input().split())) # ์ตœ์ดˆ ์ˆ˜์—ด
    flag = 1 # array์˜ ์š”์†Œ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ 0์œผ๋กœ ๋ฐ”๋€œ
    
    for _ in range(M):  # M๋ฒˆ ํŽธ์ง‘
        rule = input().split()   # ๋ฒ•์น™ ์ž…๋ ฅ 
        # ๋ฒ•์น™์ ์šฉ 
        if rule[0] == 'I': 
            array.insert(int(rule[1]),int(rule[2]))
        elif rule[0] == 'D':
            if not array: 
                flag=0
                break
            array.pop(int(rule[1]))
        else:
            array[int(rule[1])] = int(rule[2])
    
    if len(array) > L: # ํ‰๋ฒ”ํ•œ ๊ฒฝ์šฐ
        if flag: # array์— ์š”์†Œ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ 
            print(f'#{tc} {array[L]}')
        else: # array์— ์š”์†Œ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ 
            print(f'#{tc} -1')
    else: # L์ด array์˜ ์ตœ๋Œ€ ์ธ๋ฑ์Šค๋ณด๋‹ค ํฐ ๊ฒฝ์šฐ 
        print(f'#{tc} -1')
 1
 5 3 4
 1 2 3 4 5
 I 2 7
 D 4
 C 3 8


#1 5

์ •์˜๋œ ๋ณ€์ˆ˜ ๊ฐ’ ํ™•์ธ

array
[1, 2, 7, 8, 5]
rule
['C', '3', '8']
print(N,M,L)
5 3 4
flag
1

์ข‹์€ ์›นํŽ˜์ด์ง€ ์ฆ๊ฒจ์ฐพ๊ธฐ