codibility - cyclicrotation

이슬비·2025년 6월 2일
0

Coding Test

목록 보기
8/16

문제

  • 주어진 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 연산으로 가능한 인덱스 처리
  • 예외 미처리
    • K가 A의 길이 이상일 때 오류

GPT 피드백

def solution(A, K):
    if not A:  # 빈 리스트 처리
        return A
    K = K % len(A)  # K가 길이보다 클 경우 대비
    return A[-K:] + A[:-K]
  • 개개충격적인 K를 이용한 회전 ...
  • 한 번만 더 생각해보자 이미 문제에서 답은 다 알려준 것
profile
정말 알아?

0개의 댓글