https://app.codility.com/programmers/lessons/2-arrays/cyclic_rotation/
N개의 정수로 구성된 배열 A와 정수 K가 주어짐
A가 [a, b, c, d]일 때 한번 회전을 하면
[b, c, d, a]
이런 식으로 맨 앞의 원소가 맨 뒤로 가는데 이걸 한번 회전했다고 함
A 를 K번 회전한 결과를 출력하는 문제
from collections import deque
(옘병, 이건 함정 아니냐고 . . . )
if not A:
return A
q = deque(A)
[a, b, c, d] 를 4번 회전 시키면 그대로인 [a, b, c, d] K 를 N으로 나누고 나오는 나머지 만큼만 회전 시켜줘도 k번 회전 시키는 경우와 결과가 같다.K = K % len(A)
for i in range(K):
temp = q.pop()
q.appendleft(temp)
from collections import deque
def solution(A, K):
if not A:
return A
q = deque(A)
K = K % len(A)
for i in range(K):
temp = q.pop()
q.appendleft(temp)
return list(q)