본문 바로가기

Backend/Java

[인프런] 사용자 입력, 배열, 2차원

예제로 공부하는 Java 100 문제풀이 Part.2

 

사용자 입력을 받아 2차원 배열을 생성하고 값을 입력하는 코드를 구현하시오.
이떄, 중첩 반복문을 사용하여 출력도 같이 해보시오.
이 문제는 배열 생성시 사용자로부터 입력을 받아서 2차원 배열을 만들 수 있는지를 묻는 문제이다.

[1]: 사용자 입력을 위한 객체 선언 
import java.util.Scanner;
Scanner sc = new Scanner(System.in);

[2]: 2차원 배열의 행과 열 선언

→ 사용자 입력으로 처리
int R = sc.nextInt();

[3]: char 2차원 배열 선언

→ 사용자로부터 R, C 입력받아 gameMap[R][C] 생성
char[][] gameMap = new char[R][C];

[4]: 사용자 입력을 받아서 저장할 String 배열 선언

→ 이때 크기를[R]로 해주도록 한다.
→ 사용자가 입력하는 값은 안쪽 for문을 돌면서 2차원 배열에 입력하기 때문이다.
String[] strAr = new String[R];

[5]: 2차원 배열 요소

→ 사용자가 입력하는 값으로 세팅
strAr[i] = sc.next();

[6]: 2차원 배열에 들어있는 값 출력하기



import java.util.Scanner;

public class Java100Ex11 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.print("행의 개수를 입력하고 [Enter] 치세요 = ");
		int R = sc.nextInt();
		System.out.print("열의 개수를 입력하고 [Enter] 치세요 = ");
		int C = sc.nextInt();
		
		char[][] gameMap = new char[R][C];
		
		String[] strAr = new String[R];
		
		for(int i = 0; i < R; i++) {
			System.out.print((i+1) + "번째 행에 입력할 문자 " + C + "개를 차례대로 입력하고 [Enter]을 치세요 = ");
			strAr[i] = sc.next();
			for(int j = 0; j < C; j++) {
				gameMap[i][j] = strAr[i].charAt(j);
			}
		}
		
		System.out.println("---------------------------");
		for(int i = 0; i < R; i++) {
			for(int j = 0; j < C; j++)
				System.out.print(gameMap[i][j]);
			System.out.println();
		}
		System.out.println("---------------------------");
	}
}