ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Java 17413 단어 뒤집기2
    PS 2023. 5. 4. 00:15

     

    풀이 :

    조건문을 사용해 <> 태그를 나타내는지 아닌지를 체크하여 태그 문자열이 아닌 경우에는 스택에 푸쉬하고 공백 또는 '<'를 만나게 된다면 스택에 있는 문자를 전부 pop을 하여 StringBuilder에 추가해주었습니다.

    조건식을 설정하는 단계에서 조금 헤맸기에 다음부터는 좀 더 시간을 단축할 수 있게 노력해야겠다고 생각했습니다.

     

    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.util.Stack;
    
    public class Main {
    
        public static void main(String[] args) throws IOException {
            Stack<Character> stack = new Stack<>(); 
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            String str = br.readLine();
            StringBuilder sb = new StringBuilder();
    
            boolean inTag = false; // 태그 안에 있는지 나타내는 플래그입니다.
    
            for (int i = 0; i < str.length(); i++) {
                char ch = str.charAt(i);
    
                if (ch == '<') {
                    inTag = true;
                    while (!stack.empty()) {
                        sb.append(stack.pop());
                    }
                    sb.append(ch);
                } else if (ch == '>') {
                    inTag = false;
                    sb.append(ch);
                } else if (ch == ' ') {
                    while (!stack.empty()) {
                        sb.append(stack.pop());
                    }
                    sb.append(ch);
                } else {
                    if (inTag) { // 태그 안에 있는 문자열은 그대로 sb에 추가합니다.
                        sb.append(ch);
                    } else {
                        stack.push(ch);
                    }
                }
            }
    
            while (!stack.empty()) {
                sb.append(stack.pop());
            }
    
            System.out.println(sb.toString());
        }
    }

     

     

    'PS' 카테고리의 다른 글

    Java 10799 쇠막대기  (0) 2023.05.04
    Java 10870 피보나치 수 5  (0) 2023.05.04
    Java 10866 덱  (0) 2023.05.04
    Java 9095 1, 2, 3 더하기  (0) 2023.05.04
    Java 10773 제로  (0) 2023.05.02
Designed by Tistory.