본문 바로가기
백준

[백준] 11721번 : 열 개씩 끊어 출력하기 – JAVA [자바]

by Hongwoo 2022. 4. 13.
반응형

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

 

11721번: 열 개씩 끊어 출력하기

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

www.acmicpc.net

 


  • 문제

 

 


  • 문제 풀이

백준 11721번 열 개씩 끊어 출력하기는 브론즈 2 난이도의 문자열 문제이다. 이 문제에서는 입력으로 첫 줄에 문자열이 주어지고 이 문자열을 열 개씩 끊어서 출력하기만 하면 된다. 

 

이 문제는 자바 String의 substring() 함수를 써서 풀도록 하겠다. 그전에 substring 함수에 대해 간략하게 알아보겠다.

 

String substring(int index)

Substring 함수는 두 가지가 있는데 첫 번째는 바로 인자 값을 하나만 받는 함수이다. 이 함수는 인자 값으로 받은 index를 포함한 이후의 모든 문자열을 반환시키는 함수이다. 예를 한번 보겠다.

String s = "0123456789";

s.substring(5);
//56789

s.substring(3);
//3456789

 

 

String substring(int beginIndex, int endIndex)

두 번째 substring 함수는 바로 인자 값으로 beginIndex와 endIndex 2개를 받는 함수이다. 첫 번째 인자 값으로 받는 beginIndex는 문자열의 시작 인덱스이다. 그리고 두 번째 인자 값으로 받는 endIndex는 문자열의 끝 부분을 지정하는데 여기서 주의해야 할 점이 endIndex 전 인덱스까지만 받는다는 것이다. 예를 한번 보겠다.

 

String s = "0123456789";

s.substring(0,5);
//01234

s.substring(4,9);
//45678

String str = "Hello World";

s.substring(5);
// World
s.substring(5,8);
// Wo

 

이 문제에서는 길이가 100을 넘지 않는 문자열 1개가 주어진다. 따라서 문자열의 길이가 10을 넘으면 substring 함수를 여러 번 써야 할 수도 있다. 

 

그래서 n을 다음과 같이 구한다.

 

int n = s.length() / 10;

 

그리고 n번만큼 문자열을 10씩 잘라서 출력한다.

 

for (int i = 0; i < n; i++) {
    System.out.println(s.subtring(index, index+10));
}

 

이렇게 하고 나면 문자열의 길이가 10으로 딱 맞아떨어지지 않으면 남을 것이다. 그래서 그만큼도 substring 함수를 이용해서 출력해준다.

 

int n = s.length() % 10;
System.out.println(s.substring(s.length()-n));

 


  • 코드
import java.io.*;
public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String s = br.readLine();
        int n = s.length() / 10;
        int index = 0;
        for (int i = 0; i < n; i++) {
            System.out.println(s.substring(index, index+10));
            index += 10;
        }
        n = s.length() % 10;
        System.out.println(s.substring(s.length()-n));
    }
}

 


  • 후기

Substring 함수를 연습해볼 수 있는 문제였다.

 

반응형

댓글