Algorithm/백준 알고리즘

[백준 알고리즘 / JAVA] 9093번 단어 뒤집기

newtownboy 2023. 6. 27. 23:52


문제 정보

  • 문제 링크: https://www.acmicpc.net/problem/9093
  • 문제 번호: 9093번
  • 문제 이름: 단어 뒤집기
  • 문제 난이도: 브론즈 1
 

9093번: 단어 뒤집기

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

www.acmicpc.net


코드

import java.io.*;

class Main {
    public static void main(String args[]) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int count = Integer.parseInt(br.readLine());

        for (int i = 0; i < count; i++) {
            String[] strArray = br.readLine().split(" ");
            String result = "";

            for (int j = 0; j < strArray.length; j++) {
                String ret = "";
                for (int k = strArray[j].length() - 1; k >= 0; k--) {
                    ret += strArray[j].charAt(k);
                }
                if (j != strArray.length - 1) {
                    ret += " ";
                    result += ret;
                } else {
                    result += ret;
                }
            }
            System.out.println(result);
        }
    }
}

풀이

Step1: 입력 처리

BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int count = Integer.parseInt(br.readLine());
  • `BufferedReader`를 사용하여 입력을 처리합니다. 
  • `count`변수에 `br.readLine()`으로 읽은 값을 정수로 변환하여 저장합니다. 이 값은 입력할 문자열의 개수를 나타냅니다.

Step2: 단어 뒤집기

for (int i = 0; i < count; i++) {
    String[] strArray = br.readLine().split(" ");
    String result = "";

    for (int j = 0; j < strArray.length; j++) {
        String ret = "";
        for (int k = strArray[j].length() - 1; k >= 0; k--) {
            ret += strArray[j].charAt(k);
        }
        if (j != strArray.length - 1) {
            ret += " ";
            result += ret;
        } else {
            result += ret;
        }
    }
    System.out.println(result);
}
  • for문을 사용하여 변수로 입력받은 `count`번까지 반목문을 수행합니다.
  • 각 반복마다 `br.readLine().split(" ")`을 사용하여 입력된 문자열을 공백을 기준으로 나누어 `strArray`배열에 저장합니다.
  • `result`변수를 빈 문자열로 초기화합니다. 이 변수는 각 문자열을 뒤집어서 결과를 저장하는 역할을 수행합니다.
  • `strArray`배열의 각 요소에 접근하기 위해 for루프를 사용합니다. 이는 입력된 문자열을 단어별로 처리하기 위함입니다.
  • 각 반복마다 `ret`변수를 빈 문자열로 초기화합니다. 이 변수는 현재 단어를 뒤집어서 저장하는 역할을 수행합니다.
  • for루프를 사용하여 `strArray[j]`의 문자를 뒤에서부터 순차적으로 `ret`변수에 추가합니다.
  • 만약 현재 단어가 `strArray`배열의 마지막 요소가 아니라면`ret`에 공백을 추가하고 `result`에 `ret`을 추가합니다.
  • 현재 단어가 `strArray`배열의 마지막 요소라면 `ret`을 `result`에 추가합니다.
  • 모든 단어를 처리한 후 `result`를 출력합니다. 결과 값으로 뒤집어진 문자열을 출력하는 결과가 나올 것입니다.