https://school.programmers.co.kr/learn/courses/30/lessons/72410
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
public String solution(String new_id) {
String answer = "";
answer = new_id.toLowerCase(); // 1
answer = answer.replaceAll("[~!@#$%^&*()=+\\[\\]{}:?,<>/]", ""); // 2
for (int i = 0; i < answer.length() - 1; i++) { // 3
if (answer.charAt(i) == '.' && answer.charAt(i + 1) == '.') {
answer = answer.replace("..", ".");
i--;
}
}
if (answer.charAt(0) == '.') { // 4
answer = answer.substring(1);
} else if (answer.charAt(answer.length() - 1) == '.') {
answer = answer.substring(0, answer.length() - 1);
}
if (answer.isEmpty()) { //5
answer = "a";
}
if (answer.length() > 15) { //6
answer = answer.substring(0, 15);
}
if (answer.charAt(answer.length() - 1) == '.') {
answer = answer.substring(0, answer.length() - 1);
}
if (answer.length() == 1) { // 7
answer = answer.repeat(3);
} else if (answer.length() == 2) {
answer += answer.charAt(1);
}
return answer;
}
📍포인트
1. 2단계에서 정규식 사용. answer = answer.replaceAll("[~!@#$%^&*()=+\\[\\]{}:?,<>/]", "");
'코딩테스트' 카테고리의 다른 글
[코딩테스트(Java)] 프로그래머스 50048 베스트앨범 (0) | 2025.03.12 |
---|---|
[코딩테스트(Java)] 프로그래머스 92334 신고 결과 받기 (1) | 2025.03.11 |
[코딩테스트(Java)] 프로그래머스 42889 실패율 (0) | 2025.03.08 |
[코딩테스트(Java)] 프로그래머스 17682 다트 게임 (0) | 2025.03.07 |
[코딩테스트(Java)] 프로그래머스 17681 비밀지도 (0) | 2025.03.06 |