ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • Java 9093 단어 뒤집기
    PS 2023. 5. 1. 17:13

     

    풀이 :

    간단하게 char형 배열의 스택을 구현한 뒤 토큰의 갯수를 구하여 단어별로 스택에 push, pop을 하여 역순으로 정렬된 단어를 StringBuilder에 추가하여 출력하였습니다.

     

    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.util.StringTokenizer;
    
    public class Main {
    
        static class CharStack {
    
            char[] stack;
            int size;
    
            public CharStack(){
                this.stack = new char[20];
                this.size = -1;
            }
    
            public void push(char ch){
                size ++;
                stack[size] = ch;
            }
    
            public char pop(){
                if(size == -1){
                    return 'x';
                }else {
                    char ch = stack[size];
                    size --;
                    return ch;
                }
            }
    
            public boolean empty(){
                if(size == -1){
                    return true;
                }
                return false;
            }
        }
    
        public static void main(String[] args) throws IOException{
            BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
            int n = Integer.parseInt(br.readLine());
            StringTokenizer st;
            StringBuilder sb = new StringBuilder();
    
            for(int i = 0; i < n; i++){
                st = new StringTokenizer(br.readLine(), " ");
                int i1 = st.countTokens();
                for (int j = 0; j < i1; j++){
                    String token = st.nextToken();
                    int length = token.length();
                    CharStack stack = new CharStack();
                    for(int k = 0; k < length; k++){
                        stack.push(token.charAt(k));
                    }
                    while(!stack.empty()){
                        sb.append(stack.pop());
                    }
                    sb.append(" ");
                }
                sb.append("\n");
            }
            System.out.print(sb);
        }
    }

    'PS' 카테고리의 다른 글

    Java 10845 큐  (0) 2023.05.02
    Java 1406 에디터  (0) 2023.05.02
    Java 1874 스택 수열  (0) 2023.05.01
    Java 10828 스택  (0) 2023.04.29
    Java 10810번 문제. 공넣기  (0) 2023.04.20
Designed by Tistory.