[Programmers / Level 1] 72410. 신규 아이디 추천 / 2021 KAKAO BLIND RECRUITMENT (Java)

이하얀·2024년 11월 17일
0

🕊️ 프로그래머스

목록 보기
71/82

💡 Info




입출력 조건




입출력 예시




문제 이해


  • 주어진 조건에 따라 정규 표현식을 사용하여 아이디를 추천해주는 코드를 작성하면 되는 문제
- 조건
  - 1단계 : new_id의 모든 대문자를 대응되는 소문자로 치환합니다.
  - 2단계 : new_id에서 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.)를 제외한 모든 문자를 제거합니다.
  - 3단계 : new_id에서 마침표(.)가 2번 이상 연속된 부분을 하나의 마침표(.)로 치환합니다.
  - 4단계 : new_id에서 마침표(.)가 처음이나 끝에 위치한다면 제거합니다.
  - 5단계 : new_id가 빈 문자열이라면, new_id에 "a"를 대입합니다.
  - 6단계 : new_id의 길이가 16자 이상이면, new_id의 첫 15개의 문자를 제외한 나머지 문자들을 모두 제거합니다.
  			만약 제거 후 마침표(.)가 new_id의 끝에 위치한다면 끝에 위치한 마침표(.) 문자를 제거합니다.
  - 7단계 : new_id의 길이가 2자 이하라면, new_id의 마지막 문자를 new_id의 길이가 3이 될 때까지 반복해서 끝에 붙입니다.


알고리즘


풀이 시간 : 10분

  • 정규 표현식 사용하기!
    • 각 단게별로 규칙에 맞는 아이디 추천해주는 알고리즘 작성
import java.util.*;

class Solution {
    public String solution(String new_id) {
        // 1
        String id = new_id.toLowerCase();

        // 2
        id = id.replaceAll("[^-_.a-z0-9]", "");

        // 3
        id = id.replaceAll("[.]{2,}", ".");

        // 4
        id = id.replaceAll("^[.]|[.]$", "");

        // 5
        if (id.isEmpty()) {
            id = "a";
        }

        // 6
        if (id.length() >= 16) {
            id = id.substring(0, 15).replaceAll("[.]$", "");
        }

        // 7
        while (id.length() < 3) {
            id += id.charAt(id.length() - 1);
        }

        return id;
    }
}


결과

profile
언젠가 내 코드로 세상에 기여할 수 있도록, BE&Data Science 개발 기록 노트☘️

0개의 댓글