본문 바로가기

백준 문제풀이

[Baekjoon 9093] 단어 뒤집기 - JAVA

728x90

[Bronze I] 단어 뒤집기 - 9093

문제 링크

성능 요약

메모리: 60348 KB, 시간: 1748 ms

분류

구현, 문자열

문제 설명

문장이 주어졌을 때, 단어를 모두 뒤집어서 출력하는 프로그램을 작성하시오. 단, 단어의 순서는 바꿀 수 없다. 단어는 영어 알파벳으로만 이루어져 있다.

입력

첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 문장이 하나 주어진다. 단어의 길이는 최대 20, 문장의 길이는 최대 1000이다. 단어와 단어 사이에는 공백이 하나 있다.

출력

각 테스트 케이스에 대해서, 입력으로 주어진 문장의 단어를 모두 뒤집어 출력한다.

문제 풀이

여러가지 풀이가 있겠지만 StringBuilder를 자주 쓰는 저에게는 문제를 보자마자 reverse가 생각나서 그렇게 풀었습니다.

특이 사항으로는 Scanner를 썼더니 시간 초과가 떳다는것 정도..?

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

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());

        for (int i = 0; i < n; i++) {
            String[] words = br.readLine().split(" ");

            for (String word : words) {
                StringBuilder sb = new StringBuilder(word);
                System.out.print(sb.reverse().toString() + " ");
            }

            System.out.println();
        }
    }
}
728x90