๐ŸŒท๐ŸŒผ๋ชจ์—ฌ๋ด์š” ๊ฐœ๋ฐœ์˜์ˆฒ๐ŸŒท๐ŸŒผ

[๊ตฌ๋ฆ„ํ†ค์ฑŒ๋ฆฐ์ง€/JAVA] 6์ผ์ฐจ - ๋ฌธ์ž์—ด ๋‚˜๋ˆ„๊ธฐ ๋ณธ๋ฌธ

๊ฐœ๋ฐœ/์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œํ’€์ด JAVA

[๊ตฌ๋ฆ„ํ†ค์ฑŒ๋ฆฐ์ง€/JAVA] 6์ผ์ฐจ - ๋ฌธ์ž์—ด ๋‚˜๋ˆ„๊ธฐ

์š”์ผ์ด 2023. 8. 21. 22:20
๋ฐ˜์‘ํ˜•

๋ฌธ์ œ

https://level.goorm.io/exam/195688/%EB%AC%B8%EC%9E%90%EC%97%B4-%EB%82%98%EB%88%84%EA%B8%B0/quiz/1

 

๊ตฌ๋ฆ„LEVEL

๋‚œ์ด๋„๋ณ„ ๋‹ค์–‘ํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•จ์œผ๋กœ์จ SW ์—ญ๋Ÿ‰์„ ํ–ฅ์ƒ์‹œํ‚ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

level.goorm.io

 

์ฝ”๋“œ

import java.util.*;

class Main {

    public static void main(String[] args) throws Exception {
        Scanner in= new Scanner(System.in);
        int N = in.nextInt();
        int answer = 0;
        String str = in.next();
        HashSet<String> arr = new HashSet<>();
        int max = N-2;
        for(int i=0; i<str.length(); i++){
            for(int j=i; j<str.length(); j++){
                String t = str.substring(i, j+1);
                if(t.length()<=max){
                    arr.add(t);
                }
            }
        }

        ArrayList<String> sortedSubstrings = new ArrayList<>(arr);
        Collections.sort(sortedSubstrings);

        HashMap<String, Integer> map = new HashMap<>();
        
        for (int i = 0; i < sortedSubstrings.size(); i++) {
            map.put(sortedSubstrings.get(i), i + 1); 
        }

        int tmp = 0;
        for (int i = 1; i < N; i++) {
            for (int j = i + 1; j < N; j++) {
                tmp = map.get(str.substring(0, i));
                tmp += map.get(str.substring(i, j));
                tmp += map.get(str.substring(j, N));

                answer = Math.max(answer, tmp); 
            }
        }


        System.out.println(answer);
    }
}

 

์ฃ ํผ ๊ท€์ฐฎ์•„๋•…..

Comments