자바/백준

[백준 10798] 세로읽기

슈슈버거 2024. 8. 16. 00:46

문제

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

 


내가 작성한 코드

import java.util.*;
import java.io.*;

public class qor10798 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

        String input[] = new String[5];
        int maxLen = 0;

        for(int i = 0; i < 5; i++) {
            input[i] = br.readLine();
            if (input[i].length() >= maxLen) {
                maxLen = input[i].length();
            }
        }
        
        for(int i = 0; i < maxLen; i++) {
            for(int j = 0; j < 5; j++) {
                if (input[j].length() > i) {
                    bw.write(input[j].charAt(i));
                }
            }
        }
        
        bw.flush();
        bw.close();
    }
}

 

문제를 2번이나 잘못 이해했었다

1. 세로읽기 결과가 나한테 주어지는 줄

> 이 경우에 첫 문자의 범위가 주어지지 않는 이상 문제를 풀 수 없다

2. 맨 처음 문자열이 가장 긴 게 아닐 수도 있다.

> 1번에 바탕하여 잘못 이해함의 연장선이었다

 

5줄이 입력되니까 해당 줄을 저장하기 위한 배열을 생성해놓고

값을 넣음과 동시에 최대 길이를 구하게 했다

 

그 후 최대 길이만큼의 for문 내에서 5줄을 또 순회하게 하며

해당 길이에 글자가 있을 경우 출력하도록 해주었다