ALGORITHM

[JAVA] 백준 9093번- 단어 뒤집기

연듀 2022. 10. 4. 09:42

https://www.acmicpc.net/problem/9093

 

9093번: 단어 뒤집기

첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. 단어의 길이는 최대 20, 문장의 길이는 최대 1000이다. 단어와 단어 사이에는

www.acmicpc.net

 

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 {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int T = Integer.parseInt(br.readLine());
        Stack<Character> stack = new Stack<>();
        StringBuilder sb = new StringBuilder();

        while(T-- >0){
            String str = br.readLine();

            for(char x : str.toCharArray()){
                if(x!=' '){ // 공백이 아니라면
                    stack.push(x); // 스택에 push
                }
                else{ // 공백이라면
                    while(!stack.isEmpty()){ // 스택에 있는 값들을 모두 pop
                        sb.append(stack.pop());
                    }
                    sb.append(" ");
                }
            }
            while(!stack.isEmpty()){ // 끝에 공백이 없는 마지막 단어 pop
                sb.append(stack.pop());
            }
            sb.append("\n");
        }
        System.out.println(sb);
    }
}

 

 

'ALGORITHM' 카테고리의 다른 글

[JAVA] 백준 10866번- 덱  (0) 2022.10.05
[JAVA] 백준 10845번- 큐  (0) 2022.10.05
[JAVA] 백준 10828번- 스택  (0) 2022.10.04
[JAVA] 백준 1388번- 바닥 장식  (0) 2022.10.03
[JAVA] 백준 2607번- 비슷한 단어  (0) 2022.10.02