본문 바로가기
백준

[백준] 10798번 : 세로읽기 – JAVA [자바]

by Hongwoo 2022. 8. 8.
반응형

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

 

10798번: 세로읽기

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

www.acmicpc.net

 


  • 문제

 

 


  • 문제 풀이

백준 10798번 세로읽기는 브론즈 1 난이도의 구현 및 문자열 문제이다. 이 문제는 추가로 한국 정보올림피아드 지역 본선 2015에 초등부 2번 문제로 나온 문제이기도 하다. 이 문제에서는 5개의 문자열이 주어진다. 그리고 이 문자열들을 세로로 읽은 값을 출력하면 된다.

 

우선 이 5개의 문자열들의 최대 길이를 구한다. 이 값을 max라고 하겠다. 그리고 for-loop을 이용해서 int i = 0부터 max까지 하고 각 i마다 문자열의 길이를 초과하지 않는지 확인하고 초과하지 않는다면 StringBuilder에 append 시켜주면 된다. 그리고 맨 마지막에 이 StringBuilder를 출력해주면 된다.

 

자세한 코드는 밑에 있다.

 


  • 코드

 

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

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String s1 = br.readLine();
        int max = s1.length();
        String s2 = br.readLine();
        String s3 = br.readLine();
        String s4 = br.readLine();
        String s5 = br.readLine();
        //문자열 최대 길이 구하기
        max = Math.max(max, Math.max(s2.length(), Math.max(s3.length(), Math.max(s4.length(), s5.length()))));
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < max; i++) {
            //각 문자열마다 문자열의 길이를 초과하지 않는지 확인하고 StringBuilder에 붙이기
            if (i < s1.length()) sb.append(s1.charAt(i));
            if (i < s2.length()) sb.append(s2.charAt(i));
            if (i < s3.length()) sb.append(s3.charAt(i));
            if (i < s4.length()) sb.append(s4.charAt(i));
            if (i < s5.length()) sb.append(s5.charAt(i));
        }
        System.out.print(sb);
    }
}

 

 

반응형

댓글