Algorithm/릿코드

99클럽 코테 스터디 16일차 1470. Shuffle the Array

Albosa2lol 2024. 6. 14. 19:32

https://leetcode.com/problems/shuffle-the-array/description/

 

배열 섞기 (Shuffle the Array)

문제 설명:

길이가 2n인 1차원 정수 배열 nums가 주어집니다. 이 배열을 [nums[0], nums[1], ..., nums[n-1], nums[n], nums[n+1], ..., nums[2n-1]]의 형태로 표현할 수 있습니다.

배열 nums를 [nums[0], nums[n], nums[1], nums[n+1], ..., nums[n-1], nums[2n-1]]의 형태로 섞은 배열을 반환하세요.

제약 사항:

  • 1 <= n <= 500
  • nums.length == 2n
  • 1 <= nums[i] <= 10^3

 

 

풀이

 

class Solution:
    def shuffle(self, nums: List[int], n: int) -> List[int]:
        # 기존의 배열은 0,1,2,3,...2n-1
        # nums 배열의 홀수번째는 0,1,2,3,...n-1
        # nums 배열의 짝수번째는 n,n+1,n+2...2n-1
        result = []
        for i in range(n):
            result.append(nums[i])     # 첫 번째 부분에서 요소 추가
            result.append(nums[i + n]) # 두 번째 부분에서 요소 추가
        return result

홀수번째 -> i(0) 부터 1씩 증가하면서 정렬

짝수번째 -> i+n(n) 부터 1씩 증가하면서 정렬

 

이렇게 .append 를 이용하여 i, i+n 에 정렬시켜주면

기존의 배열을 문제에서 원하는대로 정렬시킬 수 있다.