[알고리즘/leetcode] Rotate Array(python)

유현민·2022년 8월 19일
0

알고리즘

목록 보기
229/253

방법이 여러가지이다.
알고리즘 문제라서 내가 직접 뒤집기를 만들어서 썼다.

만약 k가 리스트의 길이보다 길면 k를 길이로 나눠준다.

class Solution:
    def rotate(self, nums: List[int], k: int) -> None:
        l = len(nums)
        k %= l
        
        self.rev(nums, 0, l - 1)
        self.rev(nums, 0, k - 1)
        self.rev(nums, k, l - 1)
        
    def rev(self, nums, s, e):
        """
        reverse function
        """
        while s < e:
            nums[s], nums[e] = nums[e], nums[s]
            s += 1
            e -= 1
            
        return nums
class Solution:
    def rotate(self, nums: List[int], k: int) -> None:
        l = len(nums)
        k %= l
        nums[:] = nums[l-k:] + nums[:l-k]
profile
smilegate megaport infra

0개의 댓글