본문 바로가기
프로그래밍/Java

[JAVA / 자바 / 자바 기초] 배열 랜덤 생성 + 랜덤하게 섞기

by Mr.noobiest 2023. 12. 14.

 

원하는 길이로 (정수) 배열 랜덤 생성


정수로 이루어진 배열을 랜덤하게 생성한데, 이때 갯수는 내가 원하는 값으로 지정한다.

굳이 정수일 필요는 없고 원하는 배열을 Math.random으로 만들 수 도 있다.

 

public class shuffle {
    public static void main(String[] args) {        
        
        //내가 원하는 길이 여기서는 10으로 한다.
        //순서대로 배열 생성
        int[] arr1 = new int[10];
        for(int i=0;i<10;i++) {
            arr1[i]=i+1;
        }
        
        //생성한 배열값을 조회하자.
        for(int i=0;i<10;i++) {
            System.out.print(arr1[i]);
            System.out.print(", ");
        }
    }
}

 

 

출력 결과

1, 2, 3, 4, 5, 6, 7, 8, 9, 10,

 

 

 


 

 

배열 랜덤 셔플


굳이 정수일 필요는 없고, 배열이기만 하면 랜덤하게  섞을 수 있다. 

순서대로 있는 정수 배열을 랜덤하게 섞어보자.

public class shuffle {
    public static void main(String[] args) {        
        //일단 배열 생성
        //10개 사이즈 정수값1~10을 저장하는 배열
        int[] arr1 = new int[10];
        for(int i=0;i<10;i++) {
            arr1[i]=i+1;
        }

        //배열 섞기용
        //1. 배열의 길이만큼 반복실행
        for(int k=0;k<arr1.length;k++){
            //랜덤값 생성
            int i = (int)(Math.random()*10);
            int j = (int)(Math.random()*10);

            int tmp = arr1[i]; //배열의 랜덤인덱스의 값인 tmp값 생성
            arr1[i] = arr1[j]; //해당 배열의 값을 랜덤 배열로 변경
            arr1[j] = tmp;     //기존 배열의 값을 변경된 배열로 이동
        }
        //배열 출력확인용
        for(int j:arr1) {
            System.out.print(j+" ");
        }

    }
}

 

 

 

출력 결과

 
10 2 1 4 6 5 7 8 9 3

 

 

728x90
반응형