[회고] 신입 iOS 개발자가 되기까지 feat. 카카오 자세히보기

💻 CS/알고리즘 연습

[알고리즘 연습] 배열의 회전

inu 2020. 7. 19. 17:32
반응형

배열의 회전

  • 배열의 회전은 Rotation을 떠올리면 이해가 편하다. '한번의 회전'은 '한번의 Rotation'으로, [1,2,3,4,5]가 [2,3,4,5,1]이 된다.
  • 배열과 회전 횟수를 파라미터로 활용해 배열을 회전하는 알고리즘을 짜보자.

풀이

def rotateArray(nums, k):    
    partialReverse(nums, 0, len(nums) - 1)
    partialReverse(nums, 0, k - 1)
    partialReverse(nums, k, len(nums) - 1)
    return nums

# 다음 함수는 추가적인 공간 사용 없이 배열의 일부를 뒤집어 주는 함수입니다.
def partialReverse(nums, start, end):
    for i in range(0, int((end-start)/2) + 1):
        temp = nums[start + i]
        nums[start+i] = nums[end - i]
        nums[end -i] = temp
  • 배열의 일부를 뒤집어주는 함수를 따로 만들어 활용했다.
  • 이를 활용해 전체를 뒤집고, Rotation 횟수를 기준으로 앞 뒤를 뒤집어주는 방식을 활용했다.
반응형