프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr





👇 내가 작성한 코드
import java.util.*;
class Solution {
public String solution(String new_id) {
String answer = new_id.toLowerCase();
answer = answer.replaceAll("[^-_.a-z0-9]", ""); // 2단계
answer = answer.replaceAll("[.]{2,}", "."); // 3단계
answer = answer.replaceAll("^[.]|[.]$", ""); // 4단계
// 5단계
if(answer.equals("")) answer += "a";
// 6단계
if(answer.length() >= 16) {
answer = answer.substring(0, 15);
answer = answer.replaceAll("[.]$", "");
}
// 7단계
if(answer.length() <= 2) {
while(answer.length() < 3) answer += answer.charAt(answer.length() - 1);
}
return answer;
}
}
느낀 점 및 정리 ✍️
1. 단계 별로 진행하였고, replaceAll과 정규표현식을 사용하였다.
2. [^-_.a-z0-9] ^ 다음에 오는 정규표현식이 아닌 문자들을 공백으로 바꿔주었다.
3. {} 는 문자가 나오는 횟수. {2,} 은 적어도 2번 나온다는 것을 의미한다
4. ^[.]|[.]$ 는 .으로 시작 or 끝나는 것을 의미함
5. 조금만 안해도 까먹는 정규표현식 ㅠ 달달 외워야겠다.... 너무 편하다 !
'Algorithm & SQL > Programmers' 카테고리의 다른 글
| [Programmers Lv.3 / Java] 입국심사(이분탐색) (0) | 2024.03.27 |
|---|---|
| [Programmers Lv.1 / Java] 키패드 누르기(2020 카카오 인턴십) (0) | 2024.03.25 |
| [Programmers Lv.2 / Java] 게임 맵 최단거리(BFS) (0) | 2024.03.24 |
| [Programmers Lv.1 / Java] 크기가 작은 부분문자열 (0) | 2024.03.24 |
| [Programmers Lv.3 / MySQL] 물고기 종류 별 대어 찾기 (0) | 2024.03.24 |