본문 바로가기

국비교육/국비교육 복습

Day08_array2d_Test07 : 빙고판 만들기 (2차원 배열 + 랜덤 배열) (★)

(Q) 다음 규칙에 따라 빙고판을 만드세요
- 5x5 크기의 정수 배열을 준비합니다
- 1부터 25까지의 숫자를 중복없이 무작위 위치에 배치합니다
- 한 칸에는 한 번만 값을 배치할 수 있습니다
- 크기가 달라질 경우에도 달라진 크기에 맞게 빙고판이 만들어져야 합니다
ex)
 20 13 5 14 19
 6 12 1 8 25

 21 2 9 15 18
 22 10 16 3 7
 11 24 4 17 23

 

 

package day08;

import java.util.Random;

public class Day08_array2d_Test07 {

	public static void main(String[] args) {
		
		// 행과 열 입력
		int row = 5;
		int column = 5;
		
		// 배열 생성
		int[][] array = new int[row][column];
		
		Random r = new Random();
		
		// 랜덤 위치에 숫자 1에서 25까지 배치
		int count = 1;
		for(int i = 0 ; i < row * column ; i ++) {
			int x = r.nextInt(5);
			int y = r.nextInt(5);
			if(array[x][y] == 0) {
				array[x][y] = count;
				count ++;
			}
			else {		// array[x][y] 값이 0이 아니라면 (이미 숫자가 배치됨)
				i --;	// 다시 배치 (시행 취소)
			}
		}
		
		// 배열 출력
		for(int i = 0 ; i < row ; i ++) {
			for(int j = 0 ; j < column ; j ++) {
				System.out.print(array[i][j] + "\t");
			}
			System.out.println();
		}
	}
}