https://www.acmicpc.net/problem/12605
문제

풀이
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));
int N = Integer.parseInt(br.readLine());
Stack<String> stack = new Stack<>();
StringBuilder[] results = new StringBuilder[N];
for(int i = 0; i < N; i++) {
String input = br.readLine();
String[] arr = input.split(" ");
StringBuilder sb = new StringBuilder();
for (int j = 0; j < arr.length; j++)
stack.push(arr[j]);
while (!stack.isEmpty()) {
sb.append(stack.pop()).append(" ");
}
results[i] = sb;
}
for (int i = 0; i < N; i++) {
System.out.println("Case #" + (i + 1) + ": " + results[i]);
}
}
}
시간제한이 5초로 넉넉한 문제였기 때문에 배열에 저장한 뒤에 역순으로 꺼내는 단순한 방법을 사용할 수도 있었다.
다만, 스택이라는 자료구조를 사용해보고 싶어 고민을 했다.
문제는 스택을 사용할 경우 한 줄에 한 번씩 출력되는 문제가 있었다. 예를 들어, 케이스 1을 입력하면 바로 역순으로 출력되는 등의 문제였다. 물론 이렇게 해도 해결은 되었지만 한 번에 출력되는 형식으로 변경하고 싶어 StringBuilder 클래스를 사용하여 한번에 출력될 수 있게 변경하였다.
'문제 풀이 > 백준' 카테고리의 다른 글
| [백준] 1935번. 후위 표기식2 (JAVA) (0) | 2024.02.06 |
|---|---|
| [백준] 3986번. 좋은 단어 (1) | 2024.02.05 |
| [백준] 1339번. 단어 수학(JAVA) (0) | 2024.01.30 |
| [백준] 12891번. DNA 비밀번호 (1) | 2024.01.30 |
| [백준] 1940번. 주몽 (JAVA) (2) | 2024.01.28 |