ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • boj)17413 - 단어 뒤집기 2
    PS/boj 2020. 9. 14. 17:51
    import java.io.*;
    import java.util.Stack;
    
    public class boj_17413 {
        static Stack<Character> s = new Stack<>();
        static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        static StringBuilder sb = new StringBuilder();
    
        public static void main(String[] args) throws IOException {
            char[] chars = br.readLine().toCharArray();
            boolean isTag = false;
    
            for (char aChar : chars) {
                if (aChar == '<') {
                    while (!s.isEmpty()) {
                        sb.append(s.pop());
                    }
                    sb.append(aChar);
                    isTag = true;
                } else if (aChar == '>') {
                    sb.append(aChar);
                    isTag = false;
                } else if (isTag) {
                    sb.append(aChar);
                } else {
                    if (aChar == ' ') {
                        while (!s.isEmpty()) {
                            sb.append(s.pop());
                        }
                        sb.append(' ');
                    } else {
                        s.push(aChar);
                    }
                }
            }
    
            while (!s.isEmpty()) {
                sb.append(s.pop());
            }
            System.out.println(sb.toString());
        }
    }
    

    - 단어 뒤집기 1처럼 스택을 사용

    - tag안의 값은 뒤집으면 안되는걸 boolean 으로 체크

    - 공백 만나거나 열린 태그일시 지금까지 쌓은 스택 출력

    - 마지막 문장이 무시될 수 있으니 다시 sb에 추가 

    'PS > boj' 카테고리의 다른 글

    boj)17298 - 오큰수  (0) 2020.09.15
    boj)10799 - 쇠막대기  (0) 2020.09.14
    boj)1158 - 요세푸스 문제  (0) 2020.09.14
    boj)1406 - 에디터  (0) 2020.09.14
    boj)1874 - 스택 수열  (0) 2020.09.13
킹수빈닷컴