본문 바로가기
Baekjoon

[백준] 12605번 - 단어순서 뒤집기 - Java

by jinjin98 2022. 8. 12.

 

입력한 영단어를 역순으로 출력하는 문제입니다.

공백을 기준으로 영단어를 잘라 배열에 넣고 정렬을 하는 방법도 있겠지만 스택으로 풀어보았습니다.

 

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를 이용해 각 케이스 결과값을 붙여 한꺼번에 출력했습니다.

 

댓글