JAVA 문제풀이

2차원 배열 실습문제 ver. Hard

Rocomi 2024. 6. 21. 14:31

String 2차원 배열 6행 6열을 만들고 행의 맨 위와 열의 맨 앞은 각 인덱스를 저장하세요.

그리고 사용자에게 행과 열을 입력 받아 해당 좌표의 값을 'X'로 변환해 2차원 배열을 출력하세요.

 이때, 행 입력 시 99가 입력되지 않으면 무한 반복이 되도록 구현하세요.

 

ex. 

행 인덱스 입력 : 2                                                        행 인덱스 입력 : 3

열 인덱스 입력 : 2                                                        열 인덱스 입력 : 1

0 1 2 3 4                                                                       0 1 2 3 4

0                                                                                   0

1                                                                                   1

2     X                                                                            2    X

3                                                                                   3        X

4                                                                                   4

                                                                                     행 인덱스 입력 >> 99

                                                                                     프로그램 종료

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
package com.kh.practice.demension;
 
import java.util.Scanner;
 
        public void practice11() {
        Scanner sc = new Scanner(System.in);
 
        char[][] arr = new char[6][6];
 
//        0 1 2 3 4 가로세로 입력
        for (int i = 0; i < arr.length; i++) {
 
            if (i == 0) {
                for (int j = 1; j < arr[i].length; j++) {
                    arr[i][j] = (char) (j + 47);
                }
            } else if (i != 0) {
                for (int j = 0; j < arr[i].length; j++) {
                    if (j == 0) {
                        arr[i][j] = (char) (i + 47);
                    }
                }
 
            }
 
        }
 
//        나머지 변수 " "로 변경
        for (int i = 1; i < arr.length; i++) {
            for (int j = 1; j < arr[i].length; j++) {
                arr[i][j] = ' ';
            }
        }
//        여기서 부터 반복
        while (true) {
 
//        인덱스 위치 입력 받은 후 x로 변환
            System.out.print("행 인덱스 입력 : ");
            int row = sc.nextInt();
            if (row == 99) {          // 99 입력시 종료---------
                System.out.print("프로그램 종료.");
                break;
            }
            System.out.print("열 인덱스 입력 : ");
            int col = sc.nextInt();
 
            arr[row + 1][col + 1= 'X';
 
            for (int i = 0; i < arr.length; i++) {
                for (int j = 0; j < arr[i].length; j++) {
                    System.out.print(arr[i][j]);
                    if (j != arr[i].length - 1) {
                        System.out.print(" ");
                    }
                }
                System.out.println();
            }
            System.out.println();
        }
    }
}
cs