Stay Hungry Stay Foolish

BOJ 코딩테스트/Bronze

BOJ 11721 : 열 개씩 끊어 출력하기 (Java/구현/Bronze 3)

dev스카이 2024. 10. 14. 17:48

[문제 링크] 👉 https://www.acmicpc.net/problem/11721


설명

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

 

풀이

sol.1

카운트 변수를 사용한다. for문에서 글자를 한 줄에 계속 출력하면서 카운트 값도 하나씩 늘린다.

카운트 값이 10이 되면 카운트 변수를 0으로 초기화하고 다음줄로 넘어가서 출력하도록 한다.

 

length()

문자열의 길이를 반환한다.

 

charAt()

자바에서 String 클래스에 포함된 메서드로, 문자열에서 특정 인덱스에 있는 문자를 반환한다. 이 메서드를 사용하면 문자열의 각 문자에 직접 접근할 수 있다.

char ch = str.charAt(index);

 

  • str : 문자열 변수입니다.
  • index : 가져오려는 문자의 위치를 나타내는 정수입니다. 인덱스는 0부터 시작합니다.
  • ch : 해당 인덱스에 있는 문자를 저장할 변수입니다. 이 변수의 타입은 char입니다.

 

 

sol.2

for문에서 i를 0부터 input.length()까지 10씩 증가시키며 문자열을 10글자씩 출력한다. substring 메서드를 사용하여 i부터 i + 10까지의 문자열을 추출한다. 단, 문자열의 길이가 10보다 짧은 경우도 있으므로 Math.min을 사용해 범위를 조절한다.

 

substring()

String 클래스에 포함된 메서드로, 문자열의 특정 부분을 추출하여 새로운 문자열을 반환한다. 이 메서드는 두 가지 형태로 사용할 수 있다. 시작 인덱스만 지정하는 경우와 시작 및 끝 인덱스를 모두 지정하는 경우이다.

String str = substring(int beginIndex, int endIndex)
  • 문자열의 beginIndex부터 endIndex까지의 부분 문자열을 반환한다. (단, endIndex는 포함되지 않음)

 

Solution

sol.1

import java.io.*;

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

 

 

sol.2

import java.io.*;

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