본문 바로가기
Algorithm/프로그래머스풀이

[알고리즘 문제풀이] 프로그래머스 - 신규 아이디 추천 / JAVA(자바)

by 계범 2022. 2. 23.

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

 

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

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

programmers.co.kr

 

/**
    1. toLowerCase()로 소문자 치환
    
    2. replaceAll(정규식,"") 으로 제거
    
    3. replaceAll([.]{2,},".") 으로 2번이상 .을 제거
    
    4. 시작부분이나 끝부분 . 제거
    
    5. id가 비어 있으면, "a"로 변경
    
    6. id 길이 16이상이면 15까지 substring으로 제거
    6-1) 제거 후 끝부분 .이면 제거
    
    7. 2자이하면 id마지막 글자 추가
**/

class Solution {
    public String solution(String new_id) {
        
        new_id = new_id.toLowerCase();
        
        new_id = new_id.replaceAll("[^a-z0-9-_.]","");
        
        new_id = new_id.replaceAll("[.]{2,}",".");
        
        new_id = new_id.replaceAll("^[.]|[.]$","");
        
        if(new_id.equals("")){
            return "aaa";
        }
        
        new_id = new_id.length() > 15 ? new_id.substring(0,15) : new_id;
        new_id = new_id.replaceAll("^[.]|[.]$","");
        
        while(new_id.length() <= 2){
            new_id = new_id + new_id.charAt(new_id.length()-1);
        }
        
        return new_id;
    }
}

댓글