본문 바로가기

알고리즘 문제풀이/Codility

Lesson 2 : Arrays - CyclicRotation

문제 링크 : https://app.codility.com/programmers/lessons/2-arrays/cyclic_rotation/

 

CyclicRotation coding task - Learn to Code - Codility

Rotate an array to the right by a given number of steps.

app.codility.com

배열 A과 정수 K가 주어지면, K만큼 원소들이 shift된 결과를 return하면 됩니다. 예를 들어서, A = [1, 2, 3, 4, 5], K = 3이면 정답은 [3, 4, 5, 1, 2]가 됩니다. 1, 2는 3칸씩 뒤로 밀리고, 나머지는 다시 앞쪽으로 돌아와서 밀리기 때문에 문제 이름이 cyclic rotation인 것 같네요.

def solution(A, K):
    num = len(A)
    if num != 0: #Empty list check
        return A[-(K%num):] + A[:-(K%num)] #num < K check
    else:
        return A

배열 A가 empty list인 경우, 그리고 배열 A의 길이가 K보다 작아서 원소들이 한 바퀴 이상 도는 경우를 감안해야 합니다.

'알고리즘 문제풀이 > Codility' 카테고리의 다른 글

Lesson 2 : Arrays - OddOccurrencesInArray  (0) 2020.08.07
Lesson 1 : Iterations - BinaryGap  (0) 2020.08.07