모음사전

LJM·2023년 8월 22일
0

programmers

목록 보기
73/92

https://school.programmers.co.kr/learn/courses/30/lessons/84512

완전탐색 하면서 글자를 HashSet 에 저장(중복제거) 하였다
HashSet 에서 출력해보니 정렬은 안되어서
배열로 받은뒤에 정렬해서 word 나올때까지 카운트하였다

import java.util.*;

class Solution {
    public int solution(String word) {
        
        char[] mat = {'A','E','I','O','U'};
        HashSet<String> set = new HashSet<>();
        
        char[] arr = new char[5];
        StringBuilder sb = new StringBuilder();
        
        brute(0, arr, mat, set, sb);
        
        int count = 0;
        String[] toarr = set.toArray(new String[0]);
        Arrays.sort(toarr);
        
        for(String ele : toarr)
        {
            if(ele.equals(word))
                break;
            count++;
            //System.out.println(ele);
        }
        
        return count;
    }
    
    public void brute(int depth,char[] arr, char[] mat, HashSet<String> set, StringBuilder sb)
    {
        sb.setLength(0);
        
        for(int i = 0; i < depth; ++i)
            sb.append(arr[i]);
        
        set.add(sb.toString());
        if(depth == 5)
            return;
        
        for(int i = 0; i < 5; ++i)
        {
            arr[depth] = mat[i];
            brute(depth+1, arr, mat, set, sb);
        }
    }
}
profile
게임개발자 백엔드개발자

0개의 댓글