Quiz/04.Array
[Java/연습문제] 빙고 출력하기
hhaeri
2020. 10. 31. 21:15
1. 문제 설명
- 1 ~ 25 사이의 수를 2차원 배열에 랜덤으로 저장하고 출력한다.
2. 소스코드
package ex03_array_quiz;
public class Quiz14 {
public static void main(String[] args) {
//문제. 빙고
// 5x5
//1. 1 ~ 25 사이 정수를 2차원 뱅열 bingo에 순차적으로 저장
//2. 섞는다.
// 1) 총 25번의 교환이 발생 된다.
// 2) bingo[0][0] <-> 랜덤
// bingo[0][1]
final int SIZE = 5; //상수 (변치 않는 수)
int [][] bingo = new int[SIZE][SIZE];
//1~25 를 순차적으로 저장
for(int i =0 ; i <bingo.length; i++) {
for(int j =0; j<bingo[i].length; j++ ) {
bingo[i][j] = (i * SIZE) + (j + 1); // 행의 크기가 5니깐 i*5를 한다.
}
}
for (int i =0 ; i<bingo.length; i ++) {
for(int j = 0; j<bingo[i].length; j++) {
int x = (int)(Math.random()*SIZE);
int y = (int)(Math.random()*SIZE);
int temp = bingo[i][j];
bingo[i][j] = bingo[x][y];
bingo[x][y] = temp;
System.out.print(bingo[i][j] + "\t");
}
System.out.println();
}
for(int i =0 ; i <SIZE; i++) {
for(int j =0; j<SIZE; j++ ) {
System.out.print(bingo[i][j] + "\t");
}
System.out.println();
}
}
}
3. 문제 해결 방법
1) 5*5 크기의 2차원 배열을 선언한다.
2) 2차원 배열에 1~ 25 사이의 수를 순차적으로 저장한다.
3) 정수 X,Y 에 1 ~5 사이의 난수를 저장한다.
4) 생성 된 난수를 가지는 인덱스와 현재 인덱스를 바꾼다.
5) for문으로 배열을 출력한다.
4. 결과