프로그래머스 (카카오 블라인드 2021) - 신규 아이디 추천
해당 문제는 정규식을 통해 문제에 나온 단계별로 변경을 진행했습니다. 딱 7단계만 진행하면 되는지 몰라서 base case의 경우를 정하고 재귀를 통해 풀려고 했는데, 테스트 결과가 제대로 나오지 않아 문제 그대로 7단계만 진행하도록 구현했습니다.
정규식을 잘 쓰면 좋은데, 바로 보고 이해하기가 쉽지 않은경우가 있어 잘 안써서 검색을 통해 정규 표현식을 구해 풀었습니다.
public String solution(String new_id) {
//1단계
String answer = new_id.toLowerCase();
// 2단계
answer = answer.replaceAll("[^a-z0-9_|\\-|.]", "");
// 3단계
answer = answer.replaceAll("\\.{2,}", ".");
// 4단계
answer = answer.startsWith(".") ? answer.substring(1) : answer;
answer = answer.endsWith(".") ? answer.substring(0, answer.length() - 1) : answer;
// 5단계
answer = answer.isEmpty() ? "aaa" : answer;
// 6단계
answer = answer.length() > 15 ? answer.substring(0, 15).endsWith(".") ? answer.substring(0,14) : answer.substring(0,15) : answer;
// 7단계
answer = answer.length() == 1 ? answer + answer + answer : answer.length() == 2 ? answer + answer.charAt(1) : answer;
return answer;
}
'정리 > 알고리즘' 카테고리의 다른 글
프로그래머스 - 키패드 누르기 (0) | 2022.03.25 |
---|---|
프로그래머스 - 숫자 문자열과 영단어 (0) | 2022.03.24 |
해시 - 로또의 최고 순위와 최저 순위 (0) | 2022.03.22 |
해시 - 신고결과받기 (0) | 2022.03.21 |
DFS - 단어변환 (0) | 2022.03.18 |
댓글