알고리즘/백준
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된 문자열을 출력해줬습니다.