문제
- 주어진 array를 주어진 K라는 값만큼 right shift된 array 출력
내 코드
def solution(A, K):
array = {}
for i, element in enumerate(A):
array[i] = element
array_items = array.items()
new_array = {}
for idx, value in array_items:
new_idx = idx + K - len(A) if (idx + K) >= len(A) else idx + K
new_array[new_idx] = value
result = []
for i in range(len(A)):
result.append(new_array[i])
return result
- 리스트 회전은 매우 단순히 처리 가능
- 하지만 현재 불필요하게 dict, 수동 인덱스 처리
- mod 연산으로 가능한 인덱스 처리
- 예외 미처리
GPT 피드백
def solution(A, K):
if not A:
return A
K = K % len(A)
return A[-K:] + A[:-K]
- 개개충격적인 K를 이용한 회전 ...
- 한 번만 더 생각해보자 이미 문제에서 답은 다 알려준 것