알고리즘

[백준, 자바, 1251번] 단어 나누기

hminor 2024. 1. 8. 11:43

풀이

  • 해당 문제는 입력된 문자열을 3등분으로 나누어
  • 역순 시킨 문자열 중 사전순 가장 앞의 문자열을 출력하는 문제이기에 
  • 단순히 아래와 같이 해결.

 

import java.io.*;
import java.util.*;

public class 단어나누기 {
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String x = br.readLine();
        Integer x_ln = x.length();

        ArrayList<String> result = new ArrayList<>();

        for (int i = 0; i < x_ln-2; i++) {
            for (int j = i+1; j < x_ln-1; j++) {
                for (int k = j+1; k < x_ln; k++) {
                    StringBuilder s1 = new StringBuilder(x.substring(0,i+1)).reverse();
                    StringBuilder s2 = new StringBuilder(x.substring(i+1,j+1)).reverse();
                    StringBuilder s3 = new StringBuilder(x.substring(j+1,x_ln)).reverse();

                    StringBuilder com = new StringBuilder();
                    com.append(s1).append(s2).append(s3);
                    result.add(com.toString());
                }
            }
        }

        Collections.sort(result);
        System.out.println(result.get(0));
    }
}