hackerrank | Arrays: Left Rotation

Hyeseong·2021년 4월 8일
0

알고리즘

목록 보기
5/9

from collections import deque

def deque_rotate(a,k,n=0):
    a = deque(a)
    a.rotate(-k)
    result = list(a)
    return result
print(f'원본 {list(range(1,16))}')
print(f'deque_rotate -->{deque_rotate(a=list(range(1,16)), k=13)}')
# 첫 번째 포인트 collections 모듈의 deque 컨테이너를 이용하는점.
# 두 번쨰 포인트 deque 컨테이너의 rotate메소드를 사용함.
    # - rotate메소드의 인자가 n, 양수일 경우: 우측 끝의 n개 왼쪽 끝으로 넘겨줍니다.
    # - ... 인자가 음수일 경우 : 맨왼쪽의 첫번째 인덱스를 마지막 인덱스로 삽입해버립니다.

def array_left_rotation(a,k,n=0):
    alist = list(a)
    b = alist[k:]+alist[:k]
    return b

print([1,2,3,4,5])
print('array_left_rotation-->', array_left_rotation(range(1,6),k=1,))

def left_shift(k,a,n=0):
    a = deque(a)
    for _ in range(k):
        a.append(a.popleft())
    return list(a)
print(f'left_shift--> {left_shift(a=[1,2,3,4,5], k=1)}')
profile
어제보다 오늘 그리고 오늘 보다 내일...

0개의 댓글