https://www.acmicpc.net/problem/2993

 

2993번: 세 부분

첫째 줄에 원섭이가 고른 단어가 주어진다. 고른 단어는 알파벳 소문자로 이루어져 있고, 길이는 3보다 크거나 같고, 50보다 작거나 같다.

www.acmicpc.net

부르트 포스 알고리즘 비슷한 유형을 풀어봐서 쉽게 푼 거 같다. 아니면 아이디어가 안 떠올랐을 거 같다.

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

public class Main {

	public static void main(String[] args) throws IOException {
		BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
		String str = bf.readLine();
		ArrayList<String> arrStr = new ArrayList<>();

		StringBuffer sb;

		for (int i = 0; i < str.length(); i++) {
			for (int j = i + 1; j < str.length(); j++) {
				for (int k = j + 1; k < str.length(); k++) {
					String strTemp = "";

					sb = new StringBuffer(str.substring(0, j));
					strTemp += sb.reverse().toString();
					sb = new StringBuffer(str.substring(j, k));
					strTemp += sb.reverse().toString();
					sb = new StringBuffer(str.substring(k, str.length()));
					strTemp += sb.reverse().toString();
					arrStr.add(strTemp);
				}
			}
		}
		Collections.sort(arrStr);
		System.out.println(arrStr.get(0));
	}
}

 

+ Recent posts