[프로그래머스] 카카오_신규 아이디 (자바 풀이)

문제

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

 

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

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

programmers.co.kr

 

풀이

문제에 주어진대로 구현하면 되는 아주 간단한 문제이다. 코드를 보면 충분히 이해할 수 있다.

 

코드

class Solution {
    public String solution(String new_id) {
        
        // 1단계
        String answer = new_id.toLowerCase();
        // 2단계
        String temp = "";
        for(int i=0; i<answer.length(); i++){
            if(check(answer.charAt(i))){
                temp += answer.charAt(i);
            }
        }
        answer = temp;
        // 3단계
        temp = "";
        boolean flag = true;
        for(int i=0; i<answer.length(); i++){
            if(answer.charAt(i) =='.' && flag){
                flag = false;
                temp += answer.charAt(i);
            }else if(answer.charAt(i) != '.'){
                temp += answer.charAt(i);
                flag = true;
            }
        }
        answer =temp;
        // 4단계
        if(answer.charAt(0) == '.'){
            answer = answer.substring(1);
        }
        if(answer.length() >=1 && answer.charAt(answer.length()-1) =='.'){
            answer = answer.substring(0, answer.length()-1);
        }
        // 5단계
        if(answer.length() == 0){
            answer = "a";
        }
        // 6단계
        if(answer.length()>=16){
            answer = answer.substring(0,15);
        }
        if(answer.charAt(answer.length()-1)=='.'){
            answer = answer.substring(0,answer.length()-1);
        }
        // 7단계
        while(answer.length()<=2){
            answer += answer.charAt(answer.length()-1);
        }
        
        return answer;
    }
    public static boolean check(char ch){
        if( (ch>='a' && ch<= 'z' ) || (ch>='0' && ch <='9') || ch=='-' || ch=='_' || ch=='.'){
            return true;
        }else return false;
    }
}
반응형

댓글

Designed by JB FACTORY