프로그래밍 언어/JAVA

<java>자바의 정석 6장 20번 (위치 바꾸기, method작성)

창조적생각 2021. 7. 2. 13:35

다음과 같이 정의된 메서드를 작성하고 테스트하시오.

[주의]Math.random()을 사용하는 경우 실행결과와 다를 수 있음.

 

메서드명 : shuffle

기      능 : 주어진 배열에 담긴 값의 위치를 바꾸는 작업을 반복하여 뒤섞이게 한다. 처리한 배열을 반환한다.

반환타입  :int[]

매개변수  :int[] arr - 정수값이 담긴 배열

 

 

public class practice6_20 {
/*

 

(1) shuffle 메서드를 작성하시오.

 

*/

public static void main(String[] args) {
// TODO Auto-generated method stub
{
int[] original = {1,2,3,4,5,6,7,8,9};
System.out.println(java.util.Arrays.toString(original));

int[] result = shuffle(original);
System.out.println(java.util.Arrays.toString(result));
}

}

}

 

[실행결과]

[1, 2, 3, 4, 5, 6, 7, 8, 9]
[4, 6, 1, 8, 9, 7, 5, 3, 2]

 

 

[풀이]

public class practice6_20 {
static int[] shuffle(int[] arr) {  //static 을 선언해 주지 않으면 다른 method에서 활용할 수 없습니다.
for(int j = 0; j <arr.length;j++) {            
int idx = (int)(Math.random()*arr.length);
int tmp = arr[j];
arr[j] = arr[idx];
arr[idx] = tmp;}

return arr;
}

public static void main(String[] args) {
// TODO Auto-generated method stub
{
int[] original = {1,2,3,4,5,6,7,8,9};
System.out.println(java.util.Arrays.toString(original));

int[] result = shuffle(original);
System.out.println(java.util.Arrays.toString(result));
}

}

}

728x90