본문 바로가기

BackEnd/Java

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

728x90
반응형
문제)
1. 사용자에게 행의 크기를 입력 받고 그 수만큼의 반복을 통해 열의 크기도 받아 문자형 가변 배열을 선언 및 할당,
2. 그리고 각 인덱스에 'a'부터 총 인덱스의 개수만큼 하나씩 늘려 저장하고 출력합니다.
3. 실행
 (1) 행의 크기 : 4
 (2) 0열의 크기 : 2
 (3) 1열의 크기 : 6
 (4) 2열의 크기 : 3
 (5) 3열의 크기 : 5
 (6)
a b        
c d e f g h
i j k      
l m n o p  

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

public class Example08 {
	public static void main(String[] args) {
		
		Scanner sc = new Scanner(System.in);
		
		System.out.print("행의 크기 : ");
		int n = sc.nextInt();
		
		char a = 'a' - 1;
		char arr[][] = new char[n][];
		
		
		for(int i=0; i<n; i++) {
			System.out.print(i + "열의 크기 : ");
			int m = sc.nextInt();
			arr[i] = new char[m];
			
			for(int j=0; j<arr[i].length; j++) {
				arr[i][j] = (char)(a + 1);
				a = arr[i][j];
			}
		}
		
		for(int i=0; i<n; i++) {
			for(int j=0; j<arr[i].length; j++) {
				System.out.print(arr[i][j] + " ");
			}
			System.out.println();
		}
	}
}​

 

위의 코드를 풀어서 설명해 보겠습니다.

행의 크기와 열의 크기 모두를 입력받아 배열을 생성해야합니다.

 

System.out.print("행의 크기 : ");
int n = sc.nextInt();
		
char a = 'a' - 1;
char arr[][] = new char[n][];

// 먼저 행의 크기를 입력 받아서 행의 개수만 있는 배열을 만들어줍니다.
// char a를 지정해서 a - 1의 값을 선언합니다.

 

for(int i=0; i<n; i++) {
	System.out.print(i + "열의 크기 : ");
	int m = sc.nextInt();
	arr[i] = new char[m];
          
	// m 변수를 입력받아 열의 크기를 지정합니다. n만큼 반복하도록 합니다.
    // 여기서 arr[i] = new char[m] 해당 코드는 열의 값을 지정하는 것입니다.
            
	for(int j=0; j<arr[i].length; j++) {
		arr[i][j] = (char)(a + 1);
		a = arr[i][j];
        
        // arr에 a부터 출력되도록 1씩 증가시킵니다.
        // a의 값은 마지막 배열 값이 저장되도록 합니다.
	}
}

 

나머지는 배열 전체를 출력하는 코드입니다.

 

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

 

728x90
반응형