본문 바로가기

알고리즘/test

javascript) 프로그래머스 - 신규 아이디 추천

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

 

프로그래머스

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

programmers.co.kr

실행코드

function solution(new_id) {
    var answer = '';
    let low_id = new_id.toLowerCase();
    let cleanedString = low_id.replace(/[^a-z0-9-_.]/g, '');
    let threeString = cleanedString.replace(/\.{2,}/g,'.');
    let fourString =  threeString.replace(/^\.+|\.+$/g, '');
    if(fourString.length === 0){
      fourString += 'a';
    } 
    if (fourString.length >= 16){
        let fiveString = fourString.slice(0,15);
        if (fiveString.endsWith('.')) {
            fiveString = fiveString.replace(/\.$/, '');
          }
        return fiveString
      }
    if( fourString.length <= 2){
      let lastsen = fourString[fourString.length-1];
      while(fourString.length < 3){
        fourString += lastsen;
      }
    }
    
    return fourString;
}

해설:

조건대로 차근차근 풀어주었다.

1단계부터 7단계까지 단계별로 조건이 되어 있었기 때문에 맞춰서 풀었다.