나의 모양

[자바] 백준 11721 | 열 개씩 끊어 출력하기 본문

Algorithm

[자바] 백준 11721 | 열 개씩 끊어 출력하기

kexon 2022. 8. 9. 02:29

✍🏻 Description

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

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

입력

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

출력

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

📝 Flow

1. 문자열을 입력 받음 -> BufferedReader
2. 입력받은 문자열을 순회 -> for
    - substring으로 문자열 10개씩 받아오기
	- 10의 배수인지 아닌지 구분
          10의 배수일 때: str.length % 10 == 0
          10의 배수가 아닐 때: length % 10 != 0 
3. 출력

🤯 Difficulty & 🪆 Attempt

  • 10글자씩 문자열을 끊어주기 위해 substring 사용하려고 했음
    ⇒ substring 없이 문자열을 String배열로 한 글자씩 나눠서 한 줄에 받고
    ⇒ for loop으로 글자가 10개를 출력할 때마다 줄바꿈을 해주는 식으로 변경
  • 출력 시 배열의 0번째 인덱스에 줄바꿈을 해주지 않겠다는 예외처리 필요
    ⇒ 예외처리를 안하면 첫줄에서 줄바꿈이 생김

📚 TIL

  • 생각을 잘 하면 웬만한 것은 for와 if로 간단하게 해결할 수 있는 것 같다.

👩🏻‍💻 Implementation

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));

        String[] line = br.readLine().split("");

        StringBuilder sb = new StringBuilder();
        for(int i = 0; i < line.length; i++) {
            if(i % 10 == 0 && i != 0)
                sb.append("\\n").append(line[i]);
            else
                sb.append(line[i]);
        }

        System.out.println(sb);
    }
}

😮 WoW Moment

  • 제출 후 다른사람 코드를 보는데 객체 생성을 해주는 대신 다 static으로 만들어서 구현한 사람이 있었다. 꼭 객체를 생성해서 사용해야만 하는 줄 알았는데 신선한 충격이었다.
public class Main {
	static FileReader fr;
	static BufferedReader br;
	static StringTokenizer st;

	static int N, sum, cnt;
	static String input;

	public static void main(String[] args) throws Exception {

		br = new BufferedReader(new InputStreamReader(System.in));
		input = br.readLine();
		N = input.length();
		for (int i = 0; i < N; i++) {
			if (i != 0 && i % 10 == 0)
				System.out.println();
			System.out.print(input.substring(i, i + 1));
		}
	}
}

'Algorithm' 카테고리의 다른 글

SEB_BE_40 | 021 | 데일리코딩, 재귀함수  (0) 2022.07.21
[Algorithm] 에라토스테네스의 체  (0) 2022.07.09
Comments