728x90
반응형
https://www.acmicpc.net/problem/6581
풀이
"<br>"이 들어올 시 개행문자 추가
"<hr>"이 들어올 시 개행문자 추가 + "-" 80번 출력 + 개행문자 추가
나머지는 그냥 출력하되 80문자를 넘어가면 개행문자추가
StringBuilder와 String answer을 만들고, answer에 더해주다가
<br>이 들어올 시 answer의 크기가 0이 아니면 StringBuilder에 answer을 추가하고 개행문자추가
<hr>이 들어올 시 answer의 크기가 0이 아니면 StringBuilder에 answer을 추가하고 개행문자 추가 후 "-" 80번 추가 후 개행문자 추가
나머지일 시 answer + 들어온 문자의 길이가 80이 넘으면 StringBuilder에 answer을 추가하고 개행문자 추가 후, answer을 초기화
and answer에 들어온 문자 + " " 공백 추가
※주의 : answer을 StringBuilder에 추가할 경우 뒤에 공백을 제거해야함
소스코드
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
String answer = "", str = "";
while((str = br.readLine()) != null) {
StringTokenizer st = new StringTokenizer(str);
while(st.hasMoreTokens()) {
String s = st.nextToken();
if(s.equals("<br>")) {
sb.append(answer.trim()).append("\n");
answer = "";
}
else if(s.equals("<hr>")) {
if(answer.length() != 0) {
sb.append(answer.trim()).append("\n");
answer = "";
}
sb.append("-".repeat(80)).append("\n");
}
else {
if((answer + s).length() > 80) {
sb.append(answer.trim()).append("\n");
answer = "";
}
answer += s + " ";
}
}
}
System.out.print(sb + answer.trim());
}
}
728x90
반응형
'백준 > 5001 - 10000' 카테고리의 다른 글
[백준] 5602번 : 問題1(JAVA) (0) | 2021.08.21 |
---|---|
[백준] 9996번 : 한국이 그리울 땐 서버에 접속하지(JAVA) (0) | 2021.08.20 |
[백준] 9342번 : 염색체(JAVA) (0) | 2021.08.09 |
[백준] 6721번 : Backward numbers(JAVA) (0) | 2021.08.02 |
[백준] 5489번 : Numbers(JAVA) (0) | 2021.07.24 |
댓글