본문 바로가기
공부/코딩 연습하기

[백준][JAVA] 10798번 세로읽기

by 소소하지만유니크한 2019. 10. 1.
728x90

10798번 설명

문제가 길게 나와있을 뿐, 중점은 5줄이 주어졌을 때 세로로 읽어서 결과를 출력하면 된다.

고려해야할 점은 길이가 짧은 문장에 대해서 어떻게 할 것인가이며, 예외처리 없이 무조건 세로로 읽어드리게되면 메모리 접근 오류로 에러가 뜬다. 나같은 경우에는 해당 문장의 길이가 충분한 경우에만 result에 값을 집어 넣도록 하였고, flag라는 변수를 두어 해당 index에 값이 있는 경우에만 flag를 1로 만들게 하였다. 즉, 5개의 입력 string이 모두 해당 index의 값이 없을 경우, 모두 읽어드린 것이므로 반복문을 종료하고 결과를 출력한다.

 

 

전체코드

import java.util.Scanner;

public class Main
{
	public static void main(String[] args) {
    	Scanner sc = new Scanner(System.in);
        String[] input_ = new String[5];
        String result = "";
        
		for (int i = 0; i < 5; i++) {
        	input_[i] = sc.next();
		}
		int flag; int index = 0;
		while(true) {
			flag = 0;
			for (int i = 0; i < 5; i++) {
				if (index < input_[i].length()) {
					flag = 1;
					result += input_[i].charAt(index);
				}
			}
			if (flag == 0) break;
			index++;
		}
		System.out.println(result);
	}
}

결과화면

728x90

댓글