본문 바로가기

개발(합니다)/알고리즘&코테

알고리즘 단계별로 풀어보기 : BOJ-111721(열 개씩 끊어 출력하기)

반응형

문제(출처)

알파벳 소문자와 대문자로만 이루어진 길이가 N인 단어가 주어진다.


한 줄에 10글자씩 끊어서 출력하는 프로그램을 작성하시오.


입력

첫째 줄에 단어가 주어진다. 단어는 알파벳 소문자와 대문자로만 이루어져 있으며, 길이는 100을 넘지 않는다. 길이가 0인 단어는 주어지지 않는다.


출력

입력으로 주어진 단어를 열 개씩 끊어서 한 줄에 하나씩 출력한다. 단어의 길이가 10의 배수가 아닌 경우에는 마지막 줄에는 10개 미만의 글자만 출력할 수도 있다.


예제 입력

BaekjoonOnlineJudge


예제 출력

BaekjoonOn

lineJudge


내 풀이

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

public class Main {
    public static void main(String args[]) {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        
        try {
            String str = br.readLine();
            /* 런타임 에러
            bw.write(str.substring(0, 10));
            bw.newLine();
            for(int i =1 ; i< str.length()/10; i++) {
                bw.write(str.substring(i*10, (i+1)*10));
                bw.newLine();
            }
            bw.write(str.substring((str.length()/10)*10, str.length()));
            bw.flush();
            bw.close();
            */
//          /*
            bw.write(str.charAt(0));
            for(int i = 1; i < str.length(); i++) {
                if(i%10 == 0) {
                    bw.newLine();
                }
                bw.write(str.charAt(i));
            }
            bw.flush();
            bw.close();
//          */
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }
}


내 풀이 해석

규칙을 찾아보려고 첫번째와 마지막 출력은 반복문에서 제외하고 그외는 반복문을 통해 출력했습니다.
런타임 에러가 나와서 이해가 되지 않아 질문에 올렸고 답변을 기다리고 있습니다.
-> 답변 : "어떤 입력에 대해서인가" 라는 답변을 주셨고 예제까지 주셨는데 한 글자에 입력에 대한 에러였습니다.

한글자씩 읽어서 10으로 나눈 나머지가 0이면 개행을 하도록 했습니다.
이 방법이 쉬운 편입니다.


반응형