본문 바로가기

Algorithm/Baekjoon

[백준_JAVA] 10798 세로읽기

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		char[][] arr = new char[5][15];
		String str = null;
		
		for(int i = 0; i < arr.length; i++) {
			str = scan.next();
			for(int j = 0; j < str.length(); j++) {
				arr[i][j] = str.charAt(j);
			}
		}
		
		for(int i = 0; i < arr.length; i++) {
			for(int j = 0; j < str.length(); j++) {
				if(arr[i][j] == ' ' || arr[i][j] == '\0') continue;
				System.out.print(arr[j][i]);
			}
		}
		scan.close();
	}
}

위의 코드에서는 런타임 에러가 떴다.

배열 인덱스 오류 문제이다.

 

package test;

import java.util.Scanner;

public class Test2 {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		char[][] arr = new char[5][15];
		String str = null;
		
		for(int i = 0; i < arr.length; i++) {
			str = scan.next();
			for(int j = 0; j < str.length(); j++) {
				arr[i][j] = str.charAt(j);
			}
		}
		
		for(int i = 0; i < 15; i++) {
			for(int j = 0; j < 5; j++) {
				if(arr[j][i] == ' ' || arr[j][i] == '\0') continue;
				System.out.print(arr[j][i]);
			}
		}
		scan.close();
	}
}

위의 코드로 변경하니까 오류가 잡혔다.

두번째 for문의 범위를 15, 5로 제한하고, if문에서 배열의 인덱스를 arr[j][i]로 지정했다.