반응형
문제 링크
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;
}
}
반응형
'Problem Solving' 카테고리의 다른 글
[ 백준 17281 ] ⚾ 야구 - Java 시간초과 (0) | 2021.07.22 |
---|---|
[ 백준 1260 ] DFS 와 BFS - JAVA (0) | 2021.04.02 |
[ 프로그래머스 ] 주식 가격 (0) | 2021.03.30 |
[ 프로그래머스 ] N개의 최소공배수 (0) | 2021.03.29 |
[ 프로그래머스] 가장 큰 수 - Java (1) | 2021.03.10 |