[Java] 세로읽기

정석·2024년 2월 18일
0

알고리즘 학습

목록 보기
15/67
post-thumbnail

2차원 배열 문제이다.

문제

입력으로 받은 문자들을 2차원 배열에 넣은 뒤 행열을 반대로 출력하는 문제이다.

풀이

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

public class Main {
    public static void main(String[] args) throws IOException {

        BufferedReader input = new BufferedReader(new InputStreamReader(System.in));

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

        for (int i = 0; i < 5; i++) {
            String s = input.readLine();
            for (int j = 0; j < s.length(); j++) {
                words[i][j] = s.charAt(j);
            }
        }

        for (int k = 0; k < words[0].length; k++) {
            for (int l = 0; l < 5; l++) {
                if (words[l][k] == '\u0000') {
                    continue;
                }
                System.out.print(words[l][k]);
            }
        }
    }
}

row 는 k , column 은 ㅣ 로 초기화

문제에서 무조건 5줄의 문자와 최대 15글자로 이루어진다고 하였으므로 5*15 2차원 배열을 생성하였다. 이 후 값을 다 넣은 뒤 출력할 때

System.out.print(words[l][k]);

이렇게 행열의 위치를 바꿔서 출력하도록 했다.

배열의 값이 존재하는지 확인하는 과정을 아래와 같이 거친다.

if (words[l][k] == '\u0000') {
        continue;
    }

0개의 댓글