일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- java
- 거듭제곱
- 회고
- fibonacci
- 그리디
- CLI명령어
- spring data jpa
- 알고리즘
- FilterChain
- CSS
- 자바
- HTML
- 계산기만들기
- Spring Security
- 제네릭스
- testing
- 부트캠프
- Publishing
- 첫글자대문자
- 인텔리제이
- Spring Data JDBC
- 페어프로그래밍
- 깃허브
- 컬렉션프레임워크
- 백엔드
- 스프링
- 자료구조
- 백준알고리즘
- 데일리코딩
- 문자열뒤집기
Archives
- Today
- Total
나의 모양
[자바] 백준 11721 | 열 개씩 끊어 출력하기 본문
✍🏻 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