티스토리 뷰
728x90
반응형
문제
https://app.codility.com/programmers/lessons/2-arrays/cyclic_rotation/
주어진 배열을 K의 수만큼 오른쪽으로 shift한 후 변환된 배열을 반환하면 되는 문제이다.
문제 풀이
K가 주어진 배열 보다 클 경우, K 값을
K %= len(A)
로 변경하면 K가 크더라도 주어진 배열 크기 만큼 shift한다.
코드
from collections import deque
def solution(A, K):
length = len(A)
if not length or length == K:
return A
if K > length:
K %= length
lst = deque(A)
lst.rotate(K)
return list(lst)
deque
를 활용하면, rotate를 통해 shift를 쉽게 처리할 수 있다.- 직접 구현하는 것에 비해 rotate는 경우에 따라 앞, 뒤로 shift 한다.
728x90
반응형
'👨💻 코딩테스트 > Codility' 카테고리의 다른 글
Lesson 3: Complexity → Tape Equilibrium (0) | 2020.06.06 |
---|---|
Lesson 3: Time Complexity → Perm Missing Elem (0) | 2020.06.06 |
Lesson 3: Time Complexity → Flog Jmp (0) | 2020.06.06 |
Lesson 2: Arrays -> Odd Occurrences In Array (0) | 2020.06.06 |
Lesson 1: Iterations → Binary Gap (0) | 2020.06.06 |
댓글
글 보관함
최근에 올라온 글
최근에 달린 댓글