99클럽 코테스터디 26일차TIL_Shuffle the Array

donnikim·2024년 6월 14일

코딩테스트_비기너

목록 보기
26/36
post-thumbnail

문제

문제 접근

  1. 배열의 길이를 2로 나누면 n값과 동일하다.
  2. 배열의 n인덱스 기준으로 좌우로 나뉜다.
  3. 좌우로 나뉜 배열을 다시 좌1우1좌2우2...좌n우n 으로 재배열 시킨다.

풀이

class Solution {
    public int[] shuffle(int[] nums, int n) {
        int[] arrA = new int[n];
        int[] arrB = new int[n];
        int[] arrTot = new int[nums.length];
        for(int i=0; i<n;i++)
        {
            arrA[i]=nums[i];
            arrB[i]=nums[n+i];
        }

        for(int j=0; j<nums.length;j++){
            if(j%2==0)
                arrTot[j]=arrA[j/2];
            else
                arrTot[j]=arrB[j/2];
        }   

        return arrTot;
    }
}

깔끔한 코드

lass Solution {
    public int[] shuffle(int[] nums, int n) {
        int[] result = new int[2 * n];

        for (int i = 0; i < n; i++) {
            result[2 * i] = nums[i];
            result[2 * i + 1] = nums[i + n];
        }

        return result;
    }
}

0개의 댓글