업데이트:

최대 1 분 소요

링크

https://leetcode.com/problems/rotate-array/?envType=study-plan-v2&envId=top-interview-150

풀이

주어진 배열 nums를 오른쪽으로 k회 회전했을 때의 결과를 nums에 저장해야 하는 문제.

  1. nums의 수를 이용하기 위해 tmp 를 선언했다.
    1. nums의 요소를 바로 회전 처리하여 삽입하게 되는 경우 다른 요소가 덮어씌워져 쓸 수 없는 경우를 방지하기 위함이다.
  2. nums의 요소마다 tmp의 요소를 사용해 회전처리한다.
    1. 회전 처리는 현재 요소의 주소값 ik를 더한 방식을 취한다.
    2. i+k가 본래 nums의 크기를 넘는다면 이에 nums의 크기만큼 나눈 나머지만을 취해 넘어가지 않도록 한다.

코드

Python

class Solution(object):
    def rotate(self, nums, k):
        tmp = [i for i in nums]
        
        for i in range(len(nums)):
            nums[((i + k) % len(nums))] = tmp[i]

카테고리:

업데이트:

댓글남기기