티스토리 뷰

Algorithm

[백준] B1 10798 세로 읽기 (java)

코딩브론즈 2021. 1. 17. 02:41

www.acmicpc.net/problem/10798

 

10798번: 세로읽기

총 다섯줄의 입력이 주어진다. 각 줄에는 최소 1개, 최대 15개의 글자들이 빈칸 없이 연속으로 주어진다. 주어지는 글자는 영어 대문자 ‘A’부터 ‘Z’, 영어 소문자 ‘a’부터 ‘z’, 숫자 ‘0’

www.acmicpc.net

 

 

풀이

 

1) 2차원 배열을 만들때 최대 15개의 글자이므로 map[5][15] 배열을 생성한다.

2) 배열에 입력값을 넣고 세로로 탐색하면서 비어있지 않을 때만 StringBuffer에 담는다

3) StringBuffer 출력

 

주의사항

 

1) char의 초기값은 '\u0000' 십진수로는 0 이다.

 

package com.baekJoon;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.StringReader;
import java.util.StringTokenizer;

public class BJ_B1_10798_세로읽기 {
	static BufferedReader input = new BufferedReader(new InputStreamReader(System.in));
	static StringTokenizer tokens;
	static char map[][] = new char[5][15];
	public static void main(String[] args) throws NumberFormatException, IOException {
		input = new BufferedReader(new StringReader(src));
		
		for(int r=0; r<5; r++) {
			String line = input.readLine();
			for(int c=0; c<line.length(); c++) {
				map[r][c] = line.charAt(c);
			}	
		}
		StringBuffer sb = new StringBuffer();

		for(int c=0; c<15; c++) {
			for(int r=0; r<5; r++) {
				if(map[r][c] != 0) { // char의 초기값은 '\u0000' 십진수로는 0
					sb.append(map[r][c]);
				}
			}	
		}
		System.out.println(sb);
	}

	static String src =
			"AABCDD\r\n" + 
			"afzz\r\n" + 
			"09121\r\n" + 
			"a8EWg6\r\n" + 
			"P5h3kx";
}

 

 

후기

 

 의외로 원초적인 것을 배울 수 있었던 문제였다.

static으로 char형 배열을 선언하면 기본값이 공백 ' ' (스페이스) 인줄 알고 있었는데 아니었다;;

위에 적었듯이 char의 초기값은 '\u0000'이라는 애매한 놈이었고 귀찮으면 숫자 0 을 넣어도 인식된다.

간단하고 쉬운 문제들도 분명히 배울점이 있다.

'Algorithm' 카테고리의 다른 글

[백준] S2 18870 좌표 압축 (java)  (0) 2021.01.17
[백준] G5 16234 인구 이동 (java)  (0) 2021.01.17
[백준] G5 14395 4연산 (java)  (0) 2021.01.17
[백준] B4 10797 10부제 (java)  (0) 2021.01.17
[백준] G4 2075 N번째 큰 수 (java)  (0) 2021.01.06
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함