티스토리 뷰

728x90
반응형
문제 링크

programmers.co.kr/learn/courses/30/lessons/72410

 

코딩테스트 연습 - 신규 아이디 추천

카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로

programmers.co.kr

문제 풀이

정규표현식에 대한 공부와 단계별로 문자열을 고쳐주면 어렵지 않게 풀 수 있는 문제였습니다.

 

 

소스 코드
class Solution {
   public static String solution(String new_id) {
        String answer = "";

        answer = new_id.toLowerCase();// 1단계
        answer = answer.replaceAll("[^0-9a-z._-]", ""); //2단계
        StringBuffer sb= new StringBuffer();
        char [] tempArr = answer.toCharArray();
        char temp = ' ';
        for (int i = 0; i < tempArr.length; i++) {
			if(temp=='.' && tempArr[i]=='.') continue;
			else {
				temp = tempArr[i];
				sb.append(temp);
			}
		}
        answer = sb.toString(); // 3단계
    	if(answer.length()>0 && answer.charAt(0) == '.') answer = answer.substring(1);
        if(answer.length()>0 && answer.charAt(answer.length()-1) == '.')  	answer = answer.substring(0,answer.length()-1);

        if("".equals(answer)) answer = "a"; // 5단계
        if(answer.length()>=16) {
        	answer = answer.substring(0, 15);
        	if(answer.charAt(answer.length()-1) == '.') answer = answer.substring(0,answer.length()-1);
        }

        if(answer.length()<=2) {
        	while(answer.length()<3) {
        		answer+= answer.charAt(answer.length()-1);
        	}
        }
        return answer;
    }
}
728x90
반응형
250x250
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함