Notice
Recent Posts
Recent Comments
준호씨의 블로그
Codility - CyclicRotation 본문
반응형
배열 A를 K만큼 오른쪽 shift 하는 문제입니다. 단 범위를 넘어서는 숫자는 왼쪽 끝으로 이동합니다. 무한히 순환되는 구조입니다.
A = [3, 8, 9, 7, 6]
K = 6
이면 배열 [3, 8, 9, 7, 6]를 6만큼 오른쪽으로 shift 합니다. 결과는 [6, 3, 8, 9, 7]입니다. 5만큼 shift 하면 한 바퀴 돌고 1만큼 한 번 더 shift 한 것입니다.
1만큼 shfit 하면 결국 뒤의 1개와 앞의 4개 (길이-1)를 합친 것과 같습니다. 만약 빈 배열이면 자신을 리턴합니다. 그리고 shift개수가 배열의 길이를 초과한 경우 나머지를 구해서 나머지만큼만 shift 하면 됩니다.
def solution(A, K):
if len(A) == 0:
return A
K = K % len(A)
return A[-K:] + A[0:-K]
반응형
'개발이야기 > PS - Problem Solving, 알고리즘' 카테고리의 다른 글
Programmers - SQL - SELECT 문제들 풀어보기 (1) | 2021.03.21 |
---|---|
Codility - Odd Occurrences In Array (0) | 2021.03.20 |
Codility - BinaryGap - Python (0) | 2021.03.16 |
hackerrank - Migratory Birds - Python3 (0) | 2020.05.29 |
hackerrank - Divisible Sum Pairs - Python3 (0) | 2020.05.28 |
Comments