[코딩테스트] 189. Rotate Array Python

주먹밥밥·2024년 2월 15일

문제💡

Given an integer array nums, rotate the array to the right by k steps, where k is non-negative.

Example 1

입력: nums = [1,2,3,4,5,6,7], k = 3
출력: [5,6,7,1,2,3,4]
설명:
오른쪽으로 1단계 rotate: [7,1,2,3,4,5,6]
오른쪽으로 2단계 rotate: [6,7,1,2,3,4,5]
오른쪽으로 3단계 rotate: [5,6,7,1,2,3,4]

Example 2

입력: nums = [-1,-100,3,99], k = 2
출력: [3,99,-1,-100]
설명:
오른쪽으로 1단계 rotate: [99,-1,-100,3]
오른쪽으로 2단계 rotate: [3,99,-1,-100]

문제 해석✏️

정수 배열 nums가 주어지고, k 단계만큼 배열을 오른쪽으로 회전시키는 문제

문제

1. 포인터 2개가 같은 방향으로 진행해 나아가는 것
2. 포인터 2개가 양끝에서 반대로 진행되는 것
3. 포인터 하나는 한 쪽 방향으로만 진행하고, 다른 포인터는 양쪽으로 이동하는 것

class Solution:
    def rotate(self, nums: List[int], k: int) -> None: # rotate는 배열이나 리스트를 회전시키는 작업
        n = len(nums)
        k %= n # k = k % n
        nums[k:],nums[:k] = nums[:n-k], nums[n-k:]
profile
코딩은 열심히 해야겠지...?

0개의 댓글