728x90
[ 2021 KAKAO BLIND RECRUITMENT - 신규 아이디 추천 ]
https://school.programmers.co.kr/learn/courses/30/lessons/72410
[접근 방법]
그대로 순서대로 구현하였다.
'replaceAll()' 함수를 주로 사용하였다.
[JAVA 코드]
class PM_72410 {
public String solution(String new_id) {
//step 1
String answer = new_id.toLowerCase();
//step 2 - regex 에 해당하지 않는 문자는 모두 제거함.
String regex = "[^a-z0-9._-]";
answer = answer.replaceAll(regex, "");
//step 3 - 마침표 2개이상 연속 -> 1개
answer = answer.replaceAll("\\.{2,}", ".");
//step 4
answer = answer.replaceAll("^\\.|\\.$", "");
//step 5
answer = answer.isEmpty() ? "a" : answer;
//step 6
answer = answer.length() >= 16 ? answer.substring(0, 15) : answer;
answer = answer.replaceAll("\\.$", "");
//step 7
while (answer.length() < 3) {
answer += answer.charAt(answer.length() - 1);
}
return answer;
}
}
[발전 사항]
자바 정규식에 대한 깊은 공부가 필요하다.
728x90