어제의 나보다 성장한 오늘의 나

[프로그래머스][2021 KAKAO BLIND RECRUITMENT][자바] 신규 아이디 본문

알고리즘/프로그래머스(Programmers)

[프로그래머스][2021 KAKAO BLIND RECRUITMENT][자바] 신규 아이디

NineOne 2021. 4. 22. 21:25

programmers.co.kr/learn/courses/30/lessons/72410?language=java

 

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

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

programmers.co.kr

class Solution {
    public String solution(String new_id) {
        
        // 1단계
        new_id = new_id.toLowerCase();
        
        // 2단계
        new_id = new_id.replaceAll("[^0-9a-z-_.]","");
        
        // 3단계
        while(true){
            if(!new_id.contains("..")) break;
            new_id = new_id.replace("..",".");
        }
        
        // 4단계
        if(new_id.length() !=0 && new_id.charAt(0) == '.') new_id = new_id.substring(1, new_id.length());
        if(new_id.length() !=0 && new_id.charAt(new_id.length()-1) == '.') new_id = new_id.substring(0,new_id.length()-1);
        
        // 5단계
        if(new_id.length() == 0 ) new_id = "a";
        
        // 6단계
        if(new_id.length() > 15) new_id = new_id.substring(0, 15);
        if(new_id.length() !=0 && new_id.charAt(new_id.length()-1) == '.') new_id = new_id.substring(0,new_id.length()-1);
        
        // 7단계
        while(new_id.length() <3){
            if(new_id.length() == 3) break;
                
            new_id += new_id.charAt(new_id.length()-1);
        }
        
        return new_id;
    }
}

 

Comments