알고리즘

백준 10798 세로읽기 - char 배열에서 빈 곳 감지하기

침착하고 가야할 곳에만 집중하는 달팽이 2025. 1. 5. 00:21

https://www.acmicpc.net/problem/10798

 

너무나 쉬운 문제인 줄 알고 심심풀이로 풀다가 깜짝 놀랐다... 

char 배열을 쓰는데 내가 char 배열에서 빈 곳을 감지하는 방법을 모른다는 걸 깨달았기 때문에... 

방법을 적어둔다. 

 

결론: 

'\u0000' 

Java에서 char 배열의 기본값은 null이 아니라 '\u0000' (null character)이다. 그렇기 때문에 ' ' 또는 null 로 찾으려고 하면 찾아지지 않는다... 

 

문제 정답 코드: 

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Beakjoon_10798_세로읽기 {
	public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		char arr [][] = new char [5][15];
		
		for (int i = 0; i < 5; i++) {
			String temp = br.readLine();
			for (int j = 0; j < temp.length(); j++) {
				arr[i][j] = temp.charAt(j);
			}
		}
        
		// 입력 테스트용 출력
//		for (int i = 0; i < 5; i++) {
//			for (int j = 0; j < 15; j++) {
//				System.out.print(arr[i][j]);
//			}
//			System.out.println();
//		}
		
		for (int i = 0; i < 15; i++) {
			for (int j = 0; j < 5; j++) {
				if(arr[j][i] == '\u0000') {
					continue;
				}
				System.out.print(arr[j][i]);
			}
		}	
	}
}

 

문제의 코드는 바로 여기 

		for (int i = 0; i < 15; i++) {
			for (int j = 0; j < 5; j++) {
				if(arr[j][i] == '\u0000') {
					continue;
				}
				System.out.print(arr[j][i]);
			}
		}

 

계속 null 로 찾으려고 해서 문제가 풀리지 않았다.. 

몰랐으면 이제부터 알면 된다... 

 

이마 탁!