728x90
프로그래머스 2021 KAKAO BLIND RECRUITMENT 1번 문제 신규 아이디 추천
이 문제는 여러 방법이 있으나, 직접 구현하는 방법을 사용했다.
여기서 문자열의 정규식을 활용하여 풀면 더 짧게 시간이 소요된다.
class Solution{
static StringBuilder answer;
public static String solution(String new_id){
answer = new StringBuilder();
answer.append(new_id.toLowerCase());
version2();
v3();v4();v5();v6();v7();
return answer.toString();
}
public static void version2(){
for (int i = 0; i < answer.length(); i++) {
char tmp = answer.charAt(i);
if((tmp <'0' || tmp >'9') && (tmp <'a'|| tmp >'z')){
if (tmp != '-' && tmp !='_' && tmp !='.'){
answer.deleteCharAt(i--);
}
}
}
}
public static void v3(){
while(answer.indexOf("..")!=-1){
int start = answer.indexOf("..");
answer.replace(start,start+2,".");
}
}
public static void v4(){
if(answer.charAt(0) == '.')
answer.deleteCharAt(0);
if(answer.length()>0 && answer.charAt(answer.length()-1)== '.')
answer.deleteCharAt(answer.length()-1);
}
public static void v5(){
if(answer.length() == 0)
answer.append("a");
}
public static void v6(){
if (answer.length() >= 16)
answer.delete(15,answer.length());
v4();
}
public static void v7(){
while(answer.length() < 3){
answer.append(answer.charAt(answer.length()-1));
}
}
}
728x90
'알고리즘 > 프로그래머스' 카테고리의 다른 글
프로그래머스 메뉴 리뉴얼 - Java (0) | 2021.02.01 |
---|