본문 바로가기
알고리즘/알고리즘

[JAVA] 프로그래머스 : 신규 아이디 추천

by 두둠칫 2022. 8. 1.

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

1. JAVA의 문자열 String, Array, StringBuilder 객체와 함수들을 연습해볼 수 있는 문제

+ 정규표현식까지

 

 

2. 정규표현식 사용하지 않은 코드

class Solution {
    
    public String makeA(String a){
        if(a.length() == 0)
            return "a";
        else
            return a;
    }
    
    public String solution(String new_id) {
        String answer = "";
        
        String s1 = new_id.toLowerCase();
        
        char[] s1arr = s1.toCharArray();
        StringBuilder s2 = new StringBuilder();
        for(char c : s1arr){
            if(c == '-' || c == '_' || c == '.'
               || (c>='0'&&c<='9') || (c>='a'&&c<='z')){
                s2.append(c);
            }
        }
        
        String s3 = s2.toString();
        while(s3.contains("..")){
            s3 = s3.replace("..", ".");
        }
        
        if(s3.charAt(0)=='.')
            s3 = s3.substring(1, s3.length());
        if(s3.length()>0 && s3.charAt(s3.length()-1)=='.')
            s3 = s3.substring(0, s3.length()-1);
        
        String s4 = makeA(s3);
        
        if(s4.length()>=16){
            s4 = s4.substring(0, 15);
            if(s4.charAt(14)=='.')
                answer = s4.substring(0,14);
            else
                answer = s4;
        }
        else if(s4.length()<=2){
            StringBuilder s5 = new StringBuilder();
            for(char c : s4.toCharArray()){
                s5.append(c);
            }
            while(s5.length()<3){
                s5.append(s4.charAt(s4.length()-1));
            }
            answer = s5.toString();
        }
        else{
            answer = s4;
        }
        
        
        return answer;
    }
}

 

 

3. 정규표현식

https://hbase.tistory.com/160

 

[Java] 정규표현식 사용법 및 예제 - Pattern, Matcher

자바에서 정규표현식(Regular Expression)'을 사용해보자. 1. 정규표현식(Regular Expression) 정규표현식 혹은 정규식은 특정한 규칙을 가진 문자열의 집합을 표현하는데 사용되는 언어다. 정규 표현식은

hbase.tistory.com