예를 들어서 아래와 같은 배열이 있다고 하자 우리는 이 배열을 이제 내 맘대로 reverse를 할 것이다.
#input
[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]
만약에 input 이 아래와 같이 들어온다고 한다.
#input
[ [1,2], [4,7] ]
그러면 1~2번 인덱스를 역으로 돌리고 , 4~7번 인덱스를 리버싱을 해서 배열을 리턴 해주면된다.
그럼 결과 값은 아래와 같다.
output
#output
[1,3,2,4,8,7,6,5,9,10,11,12,13,14,15]
다양한 방법이 있겠지만, 저는 stack을 이용해서 해결했습니다. 시간 복잡도가 매우 높은 방식이고, 저는 그냥 스택을 이용해서 풀고 싶었기 때문에 이렇게 풀었습니다.
m_index=[[4,9],[6,14]]
m_arr=[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15]
for index in m_index:
mlist=[]
my_stack=[]
count = 0
while(count<len(m_arr)):
if(count >=index[0] and count<=index[1]):
my_stack.append(m_arr[count])
if (count == index[1]) :
num=0
while( True ):
if len(my_stack) :
mlist.append(my_stack.pop())
else :
break
else :
mlist.append(m_arr[count])
count+=1
print(mlist)
m_arr=mlist