본문 바로가기

알고리즘/초급1

[JAVA] 백준 9093번: 단어 뒤집기 (기초 1-2)

문제

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

입력

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

출력

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

 

문제 풀이

이번 문제도 어렵지 않다.

nextline으로 문자열을 읽고 ("abcd efg hij")

split을 이용하여 공백 단위로 문자열을 나눈 다음 ("abcd", "efg", "hij")

공백 단위로 나눈 String array에 있는 문자를 뒤집어서 출력해준다. ("cdba", "gfe", "jih")

 

코드는 아래와 같습니다.

import java.util.Scanner;

public class baekjoon9093 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        StringBuilder sb = new StringBuilder();

        int n = sc.nextInt();
        sc.nextLine();
        
        for (int i = 0; i < n; i++) {
            String temp = sc.nextLine();
            String[] tempArray = temp.split(" ");
            for (String string : tempArray) {
                sb.append(getReverseString(string)).append(" ");
            }
            sb.append("\n");
        }
        System.out.println(sb);
    }
    static String getReverseString(String string) {
        String reverseString = "";
        for (int j = string.length() - 1; j >= 0; j--) {
            reverseString += string.charAt(j);
        }
        return reverseString;
    }
}