java 배열 왼쪽으로 2칸 밀기

canyi·2023년 6월 16일
0

java m1

목록 보기
18/40

문제

[1, 2, 3, 4, 5] 베열을 왼쪽으로 두칸씩 회전

[1, 2, 3, 4, 5] > [3, 4, 5, 1, 2]

풀이 (왼쪽으로 밀린 배열 보류)


public class 문제3 {

  
    public static void main(String[] args) {

        int[] array = {1, 2, 3, 4, 5};

        //배열의 모든 요소를 2개 밀어냄
        for(int i =0; i < 2; i++){
            int temp = array[0];

            //배열 모든 요소를 왼쪽으로 한칸씩 이동
            for(int j = 0; j < array.length - 1; j++){
                array[j] = array[j+1];
            }

            //마지막 요소에 임시 변수 값을 저장
            array[array.length - 1] = temp;
        }

        for(int i = 0; i < array.length; i++){
            System.out.println(array[i] + " ");
        }

    }

}

풀이 (밀린 배열 버림)

package ch06_배열;

public class 문제3 {

    /*[1, 2, 3, 4, 5] 베열을 왼쪽으로 두칸씩 회전
    *
    * ex)
    *
    * [1, 2, 3, 4, 5] > [3, 4, 5, 1, 2]
     *
    * */
    public static void main(String[] args) {
        

        // 배열을 왼쪽으로 밀고 밀린 배열은 버림
        int[] array = {1, 2, 3, 4, 5}; // 예시 입력 배열

        // 배열 앞쪽 2개 요소 빠짐
        int[] shiftedArray = new int[array.length - 2];

        // 배열 왼쪽으로 2칸씩 이동
        for (int i = 2; i < array.length; i++) {
            shiftedArray[i - 2] = array[i];
        }

        // 결과 출력
        for (int i = 0; i < shiftedArray.length; i++) {
            System.out.print(shiftedArray[i] + " ");
        }


    }


}

풀이 (밀린 배열 0으로 대체)

package ch06_배열;

public class 문제3 {


    public static void main(String[] args) {


        // 밀린 배열값은 뒤로 이동하고 0으로 대체 
        int[] array = {1, 2, 3, 4, 5}; // 예시 입력 배열

        // 배열 왼쪽으로 2칸씩 이동
        for (int i = 2; i < array.length; i++) {
            array[i - 2] = array[i];
        }

        // 나머지 뒷 부분 0으로 초기화
        for (int i = array.length - 2; i < array.length; i++) {
            array[i] = 0;
        }

        // 결과 출력
        for (int i = 0; i < array.length; i++) {
            System.out.print(array[i] + " ");
        }

    }

}

문제 (오른쪽으로 밀린 배열 보류)

package ch06_배열;

public class 문제3 {

    
    public static void main(String[] args) {


        //배열은 오른쪽으로 2칸 밀고 밀린 배열은 보류
        int[] array = {1, 2, 3, 4, 5};

        //배열의 모든 요소를 오른쪽으로 2개 밀어냄
        for(int i =0; i < 2; i++){
            int last = array[array.length - 1];

            //배열 모든 요소를 오른쪽으로 한칸씩 이동
            for(int j = array.length-1; j > 0; j--){
                array[j] = array[ j - 1];
            }

            //촛번째 마지막 요소 값에 저장
            array[0] = last;
        }
        
        
        for(int i = 0; i < array.length; i++){
            System.out.println(array[i] + " ");
        }
        
    }
    
}
profile
백엔드 개발 정리

0개의 댓글