코딩테스트

[코딩테스트(Java)] 프로그래머스 72410 신규 아이디 추천

inhooo00 2025. 3. 9. 18:41

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

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

public String solution(String new_id) {
    String answer = "";

    answer = new_id.toLowerCase(); // 1

    answer = answer.replaceAll("[~!@#$%^&*()=+\\[\\]{}:?,<>/]", ""); // 2

    for (int i = 0; i < answer.length() - 1; i++) { // 3
        if (answer.charAt(i) == '.' && answer.charAt(i + 1) == '.') {
            answer = answer.replace("..", ".");
            i--;
        }
    }

    if (answer.charAt(0) == '.') { // 4
        answer = answer.substring(1);
    } else if (answer.charAt(answer.length() - 1) == '.') {
        answer = answer.substring(0, answer.length() - 1);
    }

    if (answer.isEmpty()) { //5
        answer = "a";
    }

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

    if (answer.length() == 1) { // 7
        answer = answer.repeat(3);
    } else if (answer.length() == 2) {
        answer += answer.charAt(1);
    }

    return answer;
}

 

 

 

📍포인트

1. 2단계에서 정규식 사용. answer = answer.replaceAll("[~!@#$%^&*()=+\\[\\]{}:?,<>/]", "");