본문 바로가기
개발/알고리즘 문제

[Codility] CyclicRotation

by 유다110 2017. 11. 4.
반응형

0. 질문

인자 값으로 리스트 A와 상수 K를 받는다.

리스트 A의 값들은 K만큼 오른쪽으로 이동하며 리턴값은 전부 이동하고 난 뒤의 A이다.


1. 답변

def solution(A, K):
    if A:
        if len(A) <= K:
            while len(A) < K:
                K -= len(A)
        to_be_moved_list = A[-K:]
        del A[-K:]
        return to_be_moved_list + A
    else:
        return A


이 문제도 꽤 재미있었다.

다음과 같은 경우를 주의해야 한다.

- 순회 횟수(K)가 리스트(A) 길이보다 많을 경우

- 리스트 A가 아예 비어있을 경우

이정도만 염두에 두면 딱히 어려울 건 없는 문제였다.

slice를 매우 유용하게 썼다.


반응형

댓글