Deve.haeri

[Java/연습문제] 빙고 출력하기 본문

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. 결과

Comments