<문제>
처음 표의 행 개수를 나타내는 정수 n, 처음에 선택된 행의 위치를 나타내는 정수 k, 수행한 명령어들이 담긴 문자열 배열 cmd가 매개변수로 주어질 때, 모든 명령어를 수행한 후 표의 상태와 처음 주어진 표의 상태를 비교하여 삭제되지 않은 행은 O, 삭제된 행은 X로 표시하여 문자열 형태로 return 하도록 solution 함수를 완성해주세요.
<코드>
def solution(n, k, cmd):
answer = ''
linkedList={i: [i-1,i+1] for i in range(1, n+1)}
OX=["O" for i in range(1,n+1)]
stack=[]
k+=1
print(linkedList)
for c in cmd:
if c[0]=='D':
for _ in range(int(c[2:])):
k=linkedList[k][1]
elif c[0]=='U':
for _ in range(int(c[2:])):
k=linkedList[k][0]
elif c[0]=='C':
prev,next=linkedList[k]
stack.append([prev,next,k])
OX[k-1]="X"
if next==n+1:
k=linkedList[k][0]
else:
k=linkedList[k][1]
if prev==0:
linkedList[next][0]=prev
elif next==n+1:
linkedList[prev][1]=next
else:
linkedList[prev][1]=next
linkedList[next][0]=prev
elif c[0]=='Z':
prev,next,now=stack.pop()
OX[now-1]="O"
if prev==0:
linkedList[next][0]=now
elif next==n+1:
linkedList[prev][1]=now
else:
linkedList[prev][1]=now
linkedList[next][0]=now
return "".join(OX)