코드의 여백

[프로그래머스] Lv. 1 신규 아이디 추천(Java)

by rowing0328
https://school.programmers.co.kr/learn/courses/30/lessons/72410
 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

정답 코드

class Solution {

    public String solution(String newId) {
        newId = newId.toLowerCase();
        newId = newId.replaceAll("[^a-z0-9\\-_.]", "");
        newId = newId.replaceAll("\\.+", ".");
        newId = newId.replaceAll("^\\.|\\.$", "");

        if (newId.isEmpty()) newId = "a";

        if (newId.length() >= 16) {
            newId = newId.substring(0, 15);
            newId = newId.replaceAll("\\.$", "");
        }

        while (newId.length() < 3) {
            newId += newId.charAt(newId.length() - 1);
        }

        return newId;
    }
    
}

 

설명

  1. 모든 대문자를 소문자로 변환
  2. 허용된 문자 이외 제거
  3. 연속된 마침표(.)를 하나로 변경
  4. 문자열 앞위의 마침표 제거
  5. 빈 문자열일 경우 "a"로 대체
  6. 문자열 길이 조정 (최대 15자)
  7. 문자열 길이 조정 (최소 3자)

 

실행 결과

 

참고 자료 :

취업과 이직을 위한 프로그래머스 코딩 테스트 문제 풀이 전략 : 자바 편 | 김현이

 

프로그래머스 코딩 테스트 문제 풀이 전략: 자바 편 | 김현이 - 교보문고

프로그래머스 코딩 테스트 문제 풀이 전략: 자바 편 | 핵심 개념, 프로그래머스에서 선별한 79개 문제 풀이, PCCP 대비까지! 합격에 한 걸음 더 가까워지는 실전형 코딩 테스트 문제 풀이 가이드개

product.kyobobook.co.kr

블로그의 정보

코드의 여백

rowing0328

활동하기