본문 바로가기

코딩 문제/프로그래머스

프로그래머스 - 코딩테스트 - Level1 - 신규 아이디 추천

728x90

 

풀이

 

class Solution {

      public String solution(String new_id) {

            String answer = "";

            String pattern = "[^-_.0-9a-z]";

            int check = 1;

            new_id = new_id.toLowerCase(); // 1단계

            new_id = new_id.replaceAll(pattern, ""); // 2단계

            while(check != 0){ // 3단계

                  check = 0;

                  if(new_id.contains("..")){

                        new_id = new_id.replace("..", ".");

                        check = 1;

                  }

            }

            if(new_id.startsWith(".")){ // 4단계 : 처음에 .으로 시작

                  new_id = new_id.substring(1, new_id.length());

            }

            if(new_id.endsWith(".")){ // 4단계 : 마지막에 .로 끝

                  new_id = new_id.substring(0, new_id.length()-1);

            }

            if("".equals(new_id)){ // 5단계

                  new_id = "a";

            }

            if(new_id.length() > 15){ // 6단계

                  new_id = new_id.substring(0, 15);

            }

            if(new_id.startsWith(".")){ // 4단계 : 처음에 .으로 시작

                  new_id = new_id.substring(1, new_id.length());

            }

            if(new_id.endsWith(".")){ // 4단계 : 마지막에 .로 끝

                  new_id = new_id.substring(0, new_id.length()-1);

            }

            while(new_id.length() < 3){ // 7단계

                  String str = new_id.substring(new_id.length()-1, new_id.length());

                  new_id += str;

            }

            answer = new_id;

            return answer;

      }

}

 

결과