단어(String) 마다 역순으로 뒤집는 간단한 예제이다.
import java.io.*;
public class Main{
public static void main(String[] args)throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
StringBuilder sb = new StringBuilder();
for(int i=0; i<N; i++){
String str = br.readLine();
String[] arr = str.split(" ");
for(int j=0; j < arr.length; j++){
String tmp = arr[j];
StringBuilder sb2 = new StringBuilder(tmp);
tmp = sb2.reverse().toString();
sb.append(tmp).append(" ");
}
sb.append("\n");
}
System.out.println(sb);
br.close();
}
}
반복문을 이용해 거꾸로 출력하는 예제는 구현이 상대적으로 쉬우므로, Stack을 이용하여 구현한 코드를 추가로 아래 작성해보았다.
import java.io.*;
import java.util.Stack;
public class Main {
public static void main(String[] args) throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int t = Integer.parseInt(br.readLine());
while (t-- > 0) {
Stack<Character> stack = new Stack<>();
String str = br.readLine() +'\n';
for (char ch : str.toCharArray()) {
if (ch == ' ' || ch == '\n') {
while (!stack.isEmpty()) {
bw.write(stack.pop());
}
bw.write(ch);
}
else stack.push(ch);
}
}
bw.flush();
}
}
참고 포스팅 글