[BOJ]백준 12605번: 단어순서 뒤집기

ho's·2022년 5월 4일
0

문제

문제는 간단하다.
testCase의 숫자를 입력받고, 그 수만큼 문자열을 입력한다.

" " 단위로 문자열을 끊어서 반대로 출력해야한다.

출력형식은 Case #1: 과 같이 들어가야 한다.

풀이

1. 첫째줄에 Case를 입력받는다.

2. " "를 구분지어서 문자열을 반대로 출력한다

입력 i'm very happy

출력 happy very i'm

나는 지금 도서관에 있습니다.

있습니다. 도서관에 지금 나는

문제를 보고, Stack으로 풀어야겠다! 라는 생각이 들었다.

내가 생각한 순서는

  1. BufferdReader를 통해서 문자열을 입력받는다.
  2. String클래스의 split 메소드를 이용해서 " "을 단위로 문자열 arr에 String형태로 넣는다.
  3. String형식의 Stack을 만들고, arr의 길이만큼 stack에 push한다
  4. 출력 형식에 맞게 pop을 해준다!

소스코드

package baekjoon.solution;

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

public class Baekjoon_12605 {
    public static void main(String[] args) throws IOException {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int testCase = Integer.parseInt(br.readLine());

        Stack<String> stack = new Stack<>();


        for(int i=0;i<testCase;i++) {
            String input = br.readLine();
            String[] arr = input.split(" ");
            for (int j = 0; j < arr.length; j++)
                stack.push(arr[j]);


            System.out.print("Case #"+(i+1)+": ");
            while(!stack.isEmpty()){
                System.out.print(stack.pop());
                System.out.print(" ");
                if(stack.isEmpty())
                    System.out.println();
            }
        }




    }
}

해결!

profile
그래야만 한다

0개의 댓글