728x90

프로그래머스 2021 KAKAO BLIND RECRUITMENT 1번 문제 신규 아이디 추천

 

이 문제는 여러 방법이 있으나, 직접 구현하는 방법을 사용했다.

 

여기서 문자열의 정규식을 활용하여 풀면 더 짧게 시간이 소요된다.

class Solution{
    static StringBuilder answer;
    public static String solution(String new_id){
        answer = new StringBuilder();
        answer.append(new_id.toLowerCase());
        version2();
        v3();v4();v5();v6();v7();
        return answer.toString();
    }
    public static void version2(){
        for (int i = 0; i < answer.length(); i++) {
            char tmp = answer.charAt(i);
            if((tmp <'0' || tmp >'9') && (tmp <'a'|| tmp >'z')){
                if (tmp != '-' && tmp !='_' && tmp !='.'){
                    answer.deleteCharAt(i--);
                }
            }
        }
    }
    public static void v3(){
        while(answer.indexOf("..")!=-1){
            int start = answer.indexOf("..");
                answer.replace(start,start+2,".");
        }
    }
    public static void v4(){
        if(answer.charAt(0) == '.')
            answer.deleteCharAt(0);
        if(answer.length()>0 && answer.charAt(answer.length()-1)== '.')
            answer.deleteCharAt(answer.length()-1);
    }
    public static void v5(){
        if(answer.length() == 0)
            answer.append("a");
    }
    public static void v6(){
        if (answer.length() >= 16)
            answer.delete(15,answer.length());
        v4();
    }
    public static void v7(){
        while(answer.length() < 3){
            answer.append(answer.charAt(answer.length()-1));
        }
    }
}
728x90

'알고리즘 > 프로그래머스' 카테고리의 다른 글

프로그래머스 메뉴 리뉴얼 - Java  (0) 2021.02.01

+ Recent posts