ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Algorithm/Java] kakao 2021 신규아이디 추천
    알고리즘 2021. 7. 1. 16:55
    반응형
    package pgms;
    
    public class NewId {
        public static String solution(String new_id) {
    
            //주석처리한방식은 시간은 더빠름
            //정규식이 보기에 훨 간편해보임
            //3~15
            // 소문자, 숫자, - _ .
            // .는 처음과 끝에 사용 X 연속사용 X
            String answer = "";
            new_id = new_id.toLowerCase();
    
    //        StringBuilder sb = new StringBuilder(new_id.length());
    //
    //        // step 2
    //        for(int i=0; i<new_id.length(); i++){
    //            char t = new_id.charAt(i);
    //            if(t>='a' && t<='z') sb.append(t);
    //            else if(t=='-')sb.append(t);
    //            else if (t=='_')sb.append('_');
    //            else if(t=='.')sb.append('.');
    //        }
    //        new_id = sb.toString();
            new_id = new_id.replaceAll("[^-_.a-z0-9]","");
    
    
            //step 3
            new_id = new_id.replaceAll("[.]{2,}",".");
    
            System.out.println(new_id);
    
    //        if(new_id.length()==1 && new_id.charAt(0)=='.'){
    //            new_id = "a";
    //        }
    //        else {
    //            //step 4
    //            if(new_id.charAt(0)=='.'){
    //                new_id=  new_id.substring(1);
    //            }
    //            if(new_id.charAt(new_id.length()-1)=='.'){
    //                new_id = new_id.substring(0,new_id.length()-1);
    //            }
    //            System.out.println(new_id);
    //
    //        }
    //        System.out.println(new_id);
            new_id = new_id.replaceAll("^[.]|[.]$","");
    
            //step 5
            if(new_id.length()==0){
                new_id="a";
            }
    
            if(new_id.length()>=16){
                new_id = new_id.substring(0,15);
                new_id = new_id.replaceAll("[.]$","");
            }
    
    //        System.out.println(new_id);
    //        //step 6
    //        if(new_id.charAt(new_id.length()-1)=='.'){
    //            new_id = new_id.substring(0,new_id.length()-1);
    //        }
    //
    //        System.out.println(new_id);
            //step 7
            if(new_id.length() <=2){
                while(new_id.length()<3){
                    new_id+= new_id.charAt(new_id.length()-1);
                }
            }
            answer = new_id;
    
            return answer;
        }
    
        public static void main(String[] args) {
            solution("abcdefghijklmn.p");
        }
    }

     

    정규식 쓰는법 배우기 좋을것 같다

    그런데 정규식쓰는거보다 야매로 푸는게 수행속도는 더 빠른느낌?

    댓글

Designed by Tistory.