공부 흔적남기기

프로그래머스 신규 아이디 추천 본문

코테/프로그래머스

프로그래머스 신규 아이디 추천

65살까지 코딩 2022. 1. 15. 11:03
728x90
반응형
class Solution {
    public String solution(String new_id) {
        String answer = "";
        //이문제는 그냥 주어진 로직따라 풀면 풀리는 문제
        //따로 설명 X
        //1단계
        new_id = new_id.toLowerCase();

        //2단계
        String[] strings = {"~", "!", "@", "#", "\\$", "%", "\\^", "&", "\\*", "\\(", "\\)", "=", "\\+", "\\[", "\\{", "]", "}", ":", "\\?", ",", "<", ">", "/"};
        for (int i = 0; i < strings.length; i++) {
            new_id = new_id.replaceAll(strings[i], "");
        }

        //3단계
        char[] chars = new_id.toCharArray();
        for (int i = 0; i < chars.length-1; i++) {
            if(chars[i] =='.' && chars[i+1] == '.'){
                chars[i] = '!';
            }
        }
        new_id ="";
        for (char aChar : chars) {
            if(aChar != '!'){
                new_id += aChar +"";
            }
        }

        //4단계
        if(new_id.charAt(0) =='.'){
            new_id = new_id.substring(1);
        }

        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.equals("")){
            new_id ="a";
        }

        //6단계
        if(new_id.length() >=16){
            new_id = new_id.substring(0,15);
            if(new_id.charAt(new_id.length()-1) =='.'){
                new_id = new_id.substring(0,new_id.length()-1);
            }
        }


        //7단계
        while(new_id.length()<=2){
            new_id += new_id.charAt(new_id.length()-1)+"";
        }


        answer = new_id;
        return answer;
    }
}

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

 

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

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

programmers.co.kr

 

728x90
반응형