다음과 같이 정의된 메서드를 작성하고 테스트하시오.
[주의]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));
}
}
}
'프로그래밍 언어 > JAVA' 카테고리의 다른 글
<Java> 자바의 정석6장 21번, 22번, 23번, 24번 (0) | 2021.07.02 |
---|---|
<Java>자바의 정석 5장 11번(더 큰 배열 생성하기) (0) | 2021.07.02 |
자바의 정석 6장 6번 (getDistance(),Math.sqrt(), 두점 사이의 거리 구하기) (0) | 2021.07.02 |
자바의 정석 6장 1,2번 클래스 정의하기, info() (0) | 2021.07.02 |
<Java>자바의 정석 5장 13번 toCharArray(), 단어 위치섞기 (0) | 2021.07.02 |