자바/백준
[백준 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줄을 또 순회하게 하며
해당 길이에 글자가 있을 경우 출력하도록 해주었다