알고리즘 숫자 내 맘대로 reverse - 파이썬

DevSmiler·2020년 4월 2일
0

ALGORITHMS

목록 보기
4/7

숫자를 마음대로 reverse 하는 문제를 풀어보자

예를 들어서 아래와 같은 배열이 있다고 하자 우리는 이 배열을 이제 내 맘대로 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을 이용해서 해결했습니다. 시간 복잡도가 매우 높은 방식이고, 저는 그냥 스택을 이용해서 풀고 싶었기 때문에 이렇게 풀었습니다.

source code

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    

profile
A ship is always safe at the shore, but that is not what it is built for - Albert Einstein

0개의 댓글