Algorithm
문자열처리_21 카카오 아이디추천
forkballpitch
2021. 11. 9. 10:25
문제: https://programmers.co.kr/learn/courses/30/lessons/72410
코딩테스트 연습 - 신규 아이디 추천
카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로
programmers.co.kr
출처: https://www.youtube.com/watch?v=QgiUy-N_j3s&list=PL6YHvWRMtz7DhuPHdUZ0WLB5fNO729mbm
public class Main {
public static void main(String[] args) {
solution("문자열");
}
static boolean Static isValid(char c){
if(Character.isLetterOrDigit(c)) return true;
if(c == '-'|| c =='_'|| c=='.') return true;
return false;
}
public static String solution(String new_id){
StringBuilder answer = new StringBuilder();
boolean lastDot = false;
for(char ch : new_id.toCharArray()){
if(isValid(ch) == false) continue;
if(ch == '.'){
if(answer.length() == 0 || lastDot) continue;
lastDot = true;
}else{
lastDot = false;
}
ch = Character.toLowerCase(ch);
answer.append(ch);
}
if(answer.length() >=16){
answer.setLength(15);
}
if(answer.length() == 0){
answer.append('a');
}
if(answer.charAt(answer.length()-1) == '.')
answer.deleteCharAt(answer.length() - 1);
if(answer.length() <= 2){
char ch = answer.charAt(answer.length() - 1);
while(answer.length() < 3){
answer.append(ch);
}
}
return answer.toString();
}
}