백준[1251] 단어나누기 - 자바(JAVA)
본문 바로가기

알고리즘/백준

백준[1251] 단어나누기 - 자바(JAVA)

728x90
반응형

안녕하세요 놀이방 사장입니다.

 

이번 포스팅은 백준 1251 

"단어 나누기" 포스팅입니다.

 

 

1251번: 단어 나누기

알파벳 소문자로 이루어진 단어를 가지고 아래와 같은 과정을 해 보려고 한다. 먼저 단어에서 임의의 두 부분을 골라서 단어를 쪼갠다. 즉, 주어진 단어를 세 개의 더 작은 단어로 나누는 것이다

www.acmicpc.net

 

단어나누기는 브루트포스 알고리즘을 사용해야합니다.

저도 몰라서 다른 분꺼 보고 풀었습니다.

 

단어를 세개로 쪼개야하더라구요

애초에 여기부터 계속 이해가 안갔습니다.

 

근데 코드를 보고 아 이런 문제라는 걸 이해했음..

보면 a,b => 단어를 끊는 부분

그렇게 단어를 3개로 자르고

자른 3개를 거꾸로 정렬해줍니다.

 

그 후에 붙여주고 List에 담아준 다음

sort하고 첫번쨰 인덱스에 담긴 값을 출력하면 정답입니다.

 

package me.joyeonggyu;
import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.BufferedWriter;
import java.io.OutputStreamWriter;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;

public class Main{
    public static void main(String[] args) throws Exception {
        new Main().solution();
    }

    public void solution() throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        String s = br.readLine();
        int  N = s.length();
        List<String> arr = new ArrayList<>();
        for(int a=1; a< N ; a++){
            for(int b = a+1; b<N; b++){
                arr.add(getWord(s, a, b));
            }
        }
        Collections.sort(arr);
        bw.write(arr.get(0));
        bw.flush();
        bw.close();
    }

    public String getWord(String s, int a, int b){
        StringBuilder s1 = new StringBuilder(s.substring(0,a));
        StringBuilder s2 = new StringBuilder(s.substring(a,b));
        StringBuilder s3 = new StringBuilder(s.substring(b));
        StringBuilder sb = new StringBuilder();

        sb.append(s1.reverse()).append(s2.reverse()).append(s3.reverse());

        return sb.toString();
    }
}
반응형

'알고리즘 > 백준' 카테고리의 다른 글

[백준]1312 - 소수 - JAVA  (1) 2023.12.04
백준 1308 D-day 자바 풀이  (0) 2023.12.03
백준11650 - 좌표정렬  (0) 2023.12.01
[1436]백준 - 영화감독 숌 - JAVA  (0) 2023.11.28
[백준7568]- 덩치- JAVA  (0) 2023.11.25