본문 바로가기

알고리즘/문자열

[자바]백준 11721번 열 개씩 끊어 출력하기 [문자열][엄탱]

728x90

안녕하세요. 개발자 엄탱입니다.
이 글은 알고리즘을 공부하면서 공부 기록용입니다.
그래서 설명마다 일기용으로 편하게 작성하여 반말 형식으로 작성하려고 합니다.
그리고 보시다가 더 좋은 방법이나 잘 못 알고 있는 내용이 있다면 알려주시면 정말 감사하겠습니다.
좋은 하루 되세요 :)

 

문제

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

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

 

입력

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

 

출력

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

 

예제

알고리즘 분류

  • 구현
  • 문자열

풀이

해당 문제는 여러가지 방법을 다양하게 해서 풀어봤다.

 

  1. 문자열을 하나씩 출력
  2. substring으로 10개씩 끊어서 출력

해당 문제는 코드를 보고 이해하는 게 더 빠르다고 생각 든다.

 

코드 1

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String s = br.readLine();
        
        for (int i = 0; i < s.length(); i ++) {
            System.out.print(s.charAt(i));
            
            if ((i + 1) % 10 == 0) {
                System.out.println();
            }
        }

        br.close();
    }
}

 

코드 2

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

public class Main {
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String s = br.readLine();
        
        for (int i = 0; i < s.length(); i += 10) {
            if (i + 10 >= s.length()) {
                System.out.println(s.substring(i));  
            } else {
                System.out.println(s.substring(i, i + 10));  
            }
        }

        br.close();
    }
}

 

코드 3

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

public class Main {
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String s = br.readLine();
        
        StringBuilder sb = new StringBuilder();
        
        for (int i = 0; i < s.length(); i++) {
            sb.append(s.charAt(i));
            
            if (sb.length() == 10) {
                System.out.println(sb);
                sb = new StringBuilder();
            }
        }
        
        System.out.println(sb);
        br.close();
    }
}
728x90