반응형
//문제 요약
정수 N이 여러개 들어있는 array A 가 주어진다.
이때 A를 K번 회전 시키면 얻어지는 리스트를 구해라.
단, 회전이란
A = [1, 2, 3, 4, 5] 그리고 K = 3 일때
[3, 4, 5, 1, 2] 를 리턴하는 것을 말한다.
//풀이
바로 풀어보자.
처음엔 나도 회전에 대한 개념을 잘못잡아서 여러번 시도했던 기억이 난다.
K가 3이라는 말은 위의 사진에서 a가 3칸 옆으로 움직인다는 말이고
이건 index가 3이 된다는 소리다.
따라서 2개의 리스트로 분할하여 붙여주면 간단한 풀이가 된다.
def solution(A, K):
# write your code in Python 3.6
if not (A and K):
return A
K = K % len(A)
return A[-K:] + A[:-K]
파이썬의 인덱싱이 빛을 발하는 순간이다.
주의할 것은 K의 범위가 [0, 100] 이라는 것인데
인덱싱을 이용할 경우
리스트의 총 길이보다 큰 수를 입력하면 에러가 발생하니 주의해야 한다.
또 함정으로 A가 빈 배열인 경우, K가 0인 경우가 있을 수 있으므로
주의하여 예외 구문을 처리한다.
특히 K = 0 인 경우는 % 연산자에서 에러가 발생하므로 주의한다.
반응형
'Coding Test > Codility' 카테고리의 다른 글
[ Codility 코딜리티 ] Lesson 3 TapeEquilibrium Python 파이썬 풀이 (0) | 2021.04.17 |
---|---|
[ Codility 코딜리티 ] Lesson 3 PermMissingElem Python 파이썬 풀이 (0) | 2021.04.17 |
[ Codility 코딜리티 ] Lesson 3 FrogJmp Python파이썬 풀이 (0) | 2021.04.17 |
[ Codility 코딜리티 ] # Lesson 2 OddOccurrencesInArray python 풀이 (0) | 2021.04.11 |
[ Codility 코딜리티 ] # Lesson 1 BinaryGap python 풀이 (0) | 2021.04.10 |
댓글