본문 바로가기
PS/BOJ

[자바] 백준 6581 - HTML (boj java)

by Nahwasa 2022. 7. 14.

문제 : boj6581

 

  결국엔 문제에서 제시된대로 구현하면 되긴..하는데.. 좀 까다롭긴하다.

그래도 뭐 해설을 할 부분은 딱히 없는 것 같다. 문제의 조건대로 구현만 하면 되긴하니.

특히 주의할 점이라면 각 줄의 끝에 공백문자가 있으면 안된다. 즉, 'abc ' 이러면 안되고 'abc' 이래야 한다. 이것 때문에 좀 헤맸다. 

 

코드 : github

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.StringTokenizer;

public class Main {
    int idx = 0;
    StringBuilder sb = new StringBuilder();
    private void br() {
        sb.append('\n');
        idx = 0;
    }
    private void hr() {
        if (idx != 0) br();
        for (int i = 0; i < 80; i++) sb.append('-');
        sb.append('\n');
        idx = 0;
    }
    private void solution() throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String s = "";
        ArrayList<String> arr = new ArrayList<>();
        while ((s = br.readLine())!=null) {
            StringTokenizer st = new StringTokenizer(s, " \t\n");
            while (st.hasMoreTokens())
                arr.add(st.nextToken());
        }
        for (String cur : arr) {
            if (cur.equals("<br>")) {
                br();
                continue;
            }
            if (cur.equals("<hr>")) {
                hr();
                continue;
            }
            if (idx+cur.length()+(idx==0?0:1)>80) {
                idx = 0;
                br();
            }
            if (idx != 0) sb.append(' ');
            sb.append(cur);
            idx+=cur.length()+(idx==0?0:1);
        }
        br();
        System.out.print(sb);
    }
    public static void main(String[] args) throws Exception {
        new Main().solution();
    }
}

댓글