
백준 12605번
https://www.acmicpc.net/problem/12605
스페이스로 띄어쓰기 된 단어들의 리스트가 주어질때, 단어들을 반대 순서로 뒤집어라. 각 라인은 w개의 영단어로 이루어져 있으며, 총 L개의 알파벳을 가진다. 각 행은 알파벳과 스페이스로만 이루어져 있다. 단어 사이에는 하나의 스페이스만 들어간다.
첫 행은 N이며, 전체 케이스의 개수이다.
N개의 케이스들이 이어지는데, 각 케이스는 스페이스로 띄어진 단어들이다. 스페이스는 라인의 처음과 끝에는 나타나지 않는다. N과 L은 다음 범위를 가진다.
각 케이스에 대해서, 케이스 번호가 x일때 "Case #x: " 를 출력한 후 그 후에 이어서 단어들을 반대 순서로 출력한다.




import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken()); // 전체 케이스 개수
for (int i = 0; i < N; i++) {
Stack<String> stack = new Stack<>();
// 띄어쓰기 구분으로 문자열을 stack에 넣기
stack.addAll(Arrays.asList(br.readLine().split(" ")));
// 결과를 담을 StringBuilder
StringBuilder sb = new StringBuilder();
// case 번호에 맞는 기본 구조
sb.append("Case #").append(i + 1).append(": ");
while (!stack.isEmpty()) {
sb.append(stack.pop());
// stack이 비었을 경우
if (stack.isEmpty()) {
break;
}
// 띄어쓰기로 구분하여 없앴던 부분을 다시 넣어주기
sb.append(" ");
}
//결과 출력
System.out.println(sb.toString());
}
}
}