알고리즘/백준

9093번 단어 뒤집기(java)

MoonjuLee 2024. 9. 6. 15:31

 

이 문제는 StringBuilder의 reverse() 메소드와 많은 방법을 통해 구현할 수 있지만 저는 Stack을 활용해서 문제를 풀었습니다. (링크의 과정을 참고하여 Stack으로 풀이!)

 

구현 코드

 

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Stack;

public class Main {
    public static void main(String[] args) throws Exception{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();

        int t = Integer.parseInt(br.readLine());
        for (int i = 0; i < t; i++){
            String[] inputStr = br.readLine().split(" ");
            Stack<String> stack = new Stack<>();
            for (int j = 0; j < inputStr.length; j++){
                String[] str = inputStr[j].split("");
                for (int k = 0; k < str.length; k++){
                    stack.push(str[k]);
                }
                for (int k = 0; k < str.length; k++){
                    sb.append(stack.pop());
                }
                sb.append(" ");
            }
            sb.append("\n");
        }

        System.out.println(sb);

        br.close();
    }
}

 

코드 설명

 

 문자열을 나눠서 Stack에 담고 해당 문자열을 Stack에서 pop하여 문자열을 뒤집어줍니다. 이후 각 반복문에서 빈칸과 개행문자를 넣고 append된 문자열을 출력해줬습니다.