기억보다 기록을

[Programmers] 배열 회전시키기 본문

Algorithm/Programmers

[Programmers] 배열 회전시키기

juyeong 2023. 1. 15. 16:04
반응형
반응형
def solution1(numbers, direction):
    if direction == 'right':
        return [numbers[-1]] + numbers[:-1]
    else:
        return numbers[1:] + [numbers[0]]
    return answer
    
    
    
 def solution2 (numbers,direction):
    if direction == 'right':
        numbers = deque(numbers)
        numbers.rotate(1)
        return list(numbers)
    else:
        numbers = deque(numbers)
        numbers.rotate(-1)
        return list(numbers)

 

source: https://school.programmers.co.kr/learn/courses/30/lessons/120844

입출력 예시 : numbers/direction/result 

[1, 2, 3] "right" [3, 1, 2]
[4, 455, 6, 4, -1, 45, 6] "left" [455, 6, 4, -1, 45, 6, 4]

    

suedo code: 
    1) when direction equals left or right

    2) use python slicing

   이렇게 풀 수 있고 (solution1) 

   파이썬 컬렉션의 deque를 사용해도 된다. (solution2)



1의 경우 리스트 슬라이싱을 이용하는데 입출력 예시를 보면 이해가 빠르다. 

 

 

 

 

2의 경우 collection.deque의 rotate 함수를 사용한다. 

빅오표기법이 궁금하다면? >>> https://juyeongpark.tistory.com/24 

반응형