본문 바로가기

Algorithm

[Java] 백준 10798번 : 세로읽기

1. 문제

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

 

10798번: 세로읽기

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

www.acmicpc.net

2. 풀이

  • char타입의 세로 5줄, 가로 15줄의 2차원 배열을 만든다. (char 타입의 2차원 배열의 초기값은 '\0'이다.
  • 문자열을 5번 입력받는다.
  • 입력받은 문자열을 j만큼 한 문자씩 쪼개어 순서대로 넣어준다.
  • 출력을 위해 for 문을 반대로 15만큼 반복하게 만든다.
  • 출력을 할 조건에 인덱스 내부가 공백 또는 null 문자 일 경우 continue로 계속 반복한다.

3. 코드

package baekjoon;

import java.util.Scanner;

public class Q10798 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        char[][] charArr = new char[5][15];

        for (int i = 0; i < 5; i++) {
            String str = scanner.next();

            for (int j = 0; j < str.length(); j++) {
                charArr[i][j] = str.charAt(j);
            }
        }
        for (int i = 0; i < 15; i++) {
            for (int j = 0; j < 5; j++) {
                if (charArr[j][i] == ' ' || charArr[j][i] == '\0') {
                    continue;
                }
                System.out.print(charArr[j][i]);
            }
        }
    }
}