본문 바로가기
알고리즘/문제 풀이

[Java] 프로그래머스>코딩테스트 연습>신규 아이디 추천

by _eunji_ 2021. 7. 12.

https://programmers.co.kr/learn/courses/30/lessons/72410

 

코딩테스트 연습 - 신규 아이디 추천

카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로

programmers.co.kr

class Solution {
    public String solution(String new_id) {
        String answer = "";
        String answer2 = "";
        //1 소문자
        answer = new_id.toLowerCase();
        //2 문자 제거
        for(int i=0;i<answer.length();i++){
          char ch = answer.charAt(i);
           if(Character.isLowerCase(ch)){
               answer2+=ch;
           }else if(Character.isDigit(ch)){
               answer2+=ch;
           }else if(Character.compare(ch, '-')==0){
               answer2+=ch;
           }else if(Character.compare(ch, '_')==0){
                answer2+=ch;
           }else if(Character.compare(ch, '.')==0){
                answer2+=ch;
           }else{
                continue;
           }      
        }
         answer=answer2;
        //3 연속 '.' 제거
        answer=answer.replaceAll("[.]{2,}", ".");
        //4 처음, 끝 '.' 제거
        if(answer.startsWith(".")){
            answer=answer.substring(1,answer.length());  
        }
        if(answer.endsWith(".")){
            answer=answer.substring(0,answer.length()-1);   
        } 

        //5 빈 문자열일때 'a'대입
        if(answer.equals("")){
            answer="a";
        }
        //6 16길이 이상일때 제한
        if(answer.length()>=16){
            answer=answer.substring(0,15);
            if(answer.endsWith(".")){
            answer=answer.substring(0,answer.length()-1);   
        } 
        }
        //7 길이가 2 이하일 때
         if(answer.length()<=2){
             for(int j=answer.length()-1;j<2;j++){
                 answer+=answer.charAt(j);
             }

        }
        return answer;
    }
}

 

댓글