본문 바로가기

BackEnd/Java

[java] 배열을 이용한 추가 연습문제3(array)

728x90
반응형
문제)
1. String 2차원 배열 6행 6열을 만들고 맨 위와 제일 앞 열은 각 인덱스를 저장합니다.
2. 그리고 사용자에게 행과 열을 입력 받아 해당 좌표의 값을 'x'로 변환해 2차원 배열을 출력합니다.
3. 실행
 (1) 행 인덱스 입력 : 4
 (2) 열 인덱스 입력 : 2

  0 1 2 3 4
0          
1          
2          
3          
4     x    

정답 코드)
import java.util.Scanner;

public class Example10 {
	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		
		String[][] arr = new String[6][6];
		
		System.out.print("행 인덱스 입력 : ");
		int n = sc.nextInt();
		
		System.out.print("열 인덱스 입력 : ");		
		int m = sc.nextInt();
		
		String a = "0";

		for(int i=0; i<arr.length; i++) {
			
			for(int j=0; j < arr[i].length; j++) {
				if(i == 0 && j > 0) {
					arr[i][j] = a;
					arr[j][i] = a;
					
					int b = Integer.parseInt(a) + 1;
					a = Integer.toString(b);
					
					System.out.print("\t" + arr[i][j]);
				}
			}
		}
		
		for(int i=0; i<arr.length; i++) {
			if(i > 0) {
				System.out.print("\n" + arr[i][0]);
			}
			for(int j=0; j < arr[i].length; j++) {
				if(i == n + 1 && j == m + 1) {
					System.out.print("X");
				}
				System.out.print("\t");						
			}
		}
	}
}

 

처음에는 6행 6열의 String 배열을 만듭니다. 그 후 X가 표시될 행과 열의 위치를 입력 받습니다.

a를 String 0 값으로 받은 이유는 배열에 넣으려면 문자열이 되어야하기 때문입니다.

 

for(int i=0; i<arr.length; i++) {
	for(int j=0; j < arr[i].length; j++) {
		if(i == 0 && j > 0) {
			arr[i][j] = a;
			arr[j][i] = a;
					
			int b = Integer.parseInt(a) + 1;
			a = Integer.toString(b);
					
			System.out.print("\t" + arr[i][j]);
		}
	}
}

// 정수형 변수 b는 값을 증가시키기 위해 문자열을 정수로 바꿉니다.
// 이후 다시 정수형 변수 b를 a에 넣습니다.
// (0,1) ~ (0,5)까지 0~4까지 입력 및 출력되도록 만듭니다.
// (1,0) ~ (5,0)까지 0~4까지 입력되도록 만듭니다.

 

for(int i=0; i<arr.length; i++) {
	if(i > 0) {
		System.out.print("\n" + arr[i][0]);
	}
	for(int j=0; j < arr[i].length; j++) {
		if(i == n + 1 && j == m + 1) {
			System.out.print("X");
		}
		System.out.print("\t");						
	}
}

// (1,0) ~ (5,0)까지 0~4가 출력되도록 만듭니다.
// for문을 이용해 n = 4, m = 2 가 입력되면 arr[5][3]에 X가 출력되도록 합니다.

 

많은 분들의 피드백은 언제나 환영합니다! 많은 댓글 부탁드려요~~

 

 

728x90
반응형