[Baekjoon] 12605 단어 순서 뒤집기 (스택)

백준 12605번 단어 순서 뒤집기 문제입니다.
https://www.acmicpc.net/problem/12605

이 문제는 스택을 사용하지 않아도 되는 문제지만 이번에는 스택을 사용하여 문제를 풀어 보도록 합니다.
입력 받은 String을 split을 이용하여 공백을 기준으로 구분하여 배열로 저장하고 이를 순회 하면서 Stack에 하나씩 넣어줍니다. 단어 순서를 거꾸로 출력하기 위해서 스택에 넣은 단어들을 pop 하게 되면 뒤에서부터 나오기 때문에 BufferedReader에 하나씩 append 해주면 되는 간단한 문제였습니다. 다음은 코드 전문입니다.

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.Stack;

public class Main {

    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        int N = Integer.parseInt(br.readLine());
        Stack<String> word =new Stack<>();
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < N; i++) {
            String w = br.readLine();
            String[] temp = w.split(" ");
            for (int j = 0; j < temp.length; j++) {
                word.push(temp[j]);
            }
            sb.append("Case #" + (i+1) + ": ");
            for (int j = 0; j < temp.length; j++) {
                sb.append(word.pop()).append(" ");
            }
            sb.append('\n');
            
        }
        System.out.println(sb);
    }
}

좋은 웹페이지 즐겨찾기