본문 바로가기

Coding Test/백준

[백준/자바] 10798 - 세로읽기

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

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        String[] arr = new String[5];
        int max = 0;
        for(int i=0; i<5; i++){
            arr[i] = br.readLine();
            if(max < arr[i].length()) max = arr[i].length();
        }

        for(int i=0; i<arr.length; i++){
            if(arr[i].length() < max) arr[i] += "-".repeat(max - arr[i].length());
        }

        for(int i=0; i<max; i++){
            for(int j=0; j<arr.length; j++){
                sb.append(arr[j].charAt(i));
            }
        }

        String result = sb.toString().replaceAll("-", "");
        System.out.println(result);

        br.close();
    }
}

길이가 부족한 String은 임의로 "-"를 덧붙여서 sb에 append한다.

마지막에 "-"를 ""로 변경 후(삭제한 후) 출력한다.


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

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        String[] arr = new String[5];
        int max = 0;
        for(int i=0; i<5; i++){
            arr[i] = br.readLine();
            if(max < arr[i].length()) max = arr[i].length();
        }

        for(int i=0; i<max; i++){
            for(int j=0; j<arr.length; j++){
                if(arr[j].length() - 1 < i) continue;
                sb.append(arr[j].charAt(i));
            }
        }

        System.out.println(sb);

        br.close();
    }
}

길이가 부족한 String은 continue로 넘어간다.

for문이 다 돌아간 후 바로 출력한다.


결과 - (위) 2번째 풀이, (아래) 1번째 풀이