입력한 영단어를 역순으로 출력하는 문제입니다.
공백을 기준으로 영단어를 잘라 배열에 넣고 정렬을 하는 방법도 있겠지만 스택으로 풀어보았습니다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Stack;
import java.util.StringTokenizer;
public class p12605 {
public static void main(String[] args) throws IOException {
Stack<String> stack = new Stack<>();
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
StringTokenizer st;
int N = Integer.parseInt(br.readLine());
for(int i=1; i<=N; i++) {
st = new StringTokenizer(br.readLine(), " ");
while (st.hasMoreTokens()) {
stack.push(st.nextToken());
}
sb.append("Case #" + i + ": ");
while (! stack.isEmpty()) {
sb.append(stack.pop() + " ");
}
sb.append("\n");
}
System.out.println(sb);
}
}
후입선출 구조인 스택에 값을 넣고 꺼내면 가장 마지막에 넣은 값부터 꺼내게 되니 꺼낸 값을 차례대로 추가했습니다.
StringBuilder를 이용해 각 케이스 결과값을 붙여 한꺼번에 출력했습니다.
'Baekjoon' 카테고리의 다른 글
[백준] 3036번 - 링 - Java (0) | 2022.10.05 |
---|---|
[백준] 1302번 - 베스트셀러 - Java (0) | 2022.09.19 |
[백준] 2693번 - N번째 큰 수 - Java (0) | 2022.09.18 |
[백준] 10867번 - 중복 빼고 정렬하기 - Java (0) | 2022.09.08 |
[백준] 10825번 - 국영수 - Java (0) | 2022.08.16 |
댓글