https://programmers.co.kr/learn/courses/30/lessons/72410
문제
풀이
String 클래스에 기본메소드 사용에 대한 문제이다.
그중에서도 정규표현식을 얼마만큼 아느냐가 코드를 간결하고 깔끔하게 짜는 방법이라 할 수 있겠다.
class Solution {
public String solution(String new_id){
new_id = new_id.toLowerCase().replaceAll("[^-_.a-z0-9]", "");
while(new_id.contains("..")) new_id = new_id.replaceAll("\\.\\.", "\\.");
if(new_id.startsWith(".")) new_id = new_id.substring(1);
if(new_id.equals("")) new_id = "a";
if(new_id.length()>15) new_id = new_id.substring(0,15);
if(new_id.endsWith(".")) new_id = new_id.substring(0,new_id.length()-1);
if(new_id.length()<3) for(int i=0;new_id.length()<3;i++) new_id = new_id + new_id.charAt(new_id.length()-1); // 7
return new_id;
}
}
나의 풀이는 문자열의 기본메소드 위주로 풀었고 정규표현식은 2,3단계에서 한번씩 사용하였다.
이스케이프 문자에 대해 \\를 붙여 매치시켰는데,
다른사람들의 풀이는 더 많은 정규표현식을 활용한 것 같다.
'Algorithm > Weekly Solved' 카테고리의 다른 글
[2021 KAKAO] 메뉴 리뉴얼 - Java코드 ★★★ (0) | 2021.11.30 |
---|---|
[백준 1316] 그룹 단어 체커 - Java 코드 (0) | 2021.11.30 |
[백준 2941] 크로아티아 알파벳 - Java 코드 (0) | 2021.11.24 |
[위클리챌린지] 8주 - 최소 직사각형 - Java코드 (0) | 2021.10.25 |
[위클리챌린지] 7주 - 입실 퇴실 - Java코드 (0) | 2021.09.24 |