[백준] 11721번: 열 개씩 끊어 출력하기 - Java, 자바

xxx-sj·2023년 8월 29일
0

알고리즘

목록 보기
30/46

문제 접근

이 문제는 입력받은 문자열의 길이를 10으로 나누어 각각 한줄 씩 출력한다.
여기서 단어의 길이가 10의 배수가 아닌경우에는 마지막 줄에 10개 미만 글자가
출력되어야 한다. 따라서 입력받은 문자열을 10으로 나누어 몫을 구하고 만약에 10으로 나눈 나머지가
남아있을 경우 몫에 + 1을 해준다.

전체코드

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

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();

        String line = br.readLine();

        int count  = line.length() / 10;
        if(line.length() % 10 > 0)  {
            count++;
        }

        for(int i = 0 ; i < count; i++) {
            for(int j = i * 10; j < 10 * (i + 1); j++) {
                if (j == line.length()) break;
                sb.append(line.charAt(j));
            }
            sb.append("\n");
        }

        System.out.println(sb);
    }
}

코드 상세

  • 10으로 나누어 몫을 구한다.
    • 나머지가 0보다 크다면 몫에 1를 더한다.
int count  = line.length() / 10;
if(line.length() % 10 > 0)  {
    count++;
}
  • 몫만큼 for loop를 돌면서 2중 for loop에서는
  • 10문자씩 출력하게 된다.
  • 2중for문에서는 만약 string.length와 같아진다면 return하여
  • for loop를 종료한다.
for(int i = 0 ; i < count; i++) {
    for(int j = i * 10; j < 10 * (i + 1); j++) {
        if (j == line.length()) break;
        sb.append(line.charAt(j));
    }
    sb.append("\n");
}
profile
틀려도 일단 기록하자

0개의 댓글