본문 바로가기
algorithm/js

[프로그래머스/js] 신규 아이디 추천

by blogsy 2021. 10. 27.

https://programmers.co.kr/learn/courses/30/lessons/72410?language=javascript 

 

코딩테스트 연습 - 신규 아이디 추천

카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로

programmers.co.kr

function delSandE(new_id) {
  if (/^[.]/.test(new_id)) {
    new_id = new_id.substr(1);
  }
  if (/[.]$/.test(new_id)) {
    new_id = new_id.substr(0, new_id.length - 1);
  }
  return new_id;
}

function solution(new_id) {
  const regex = /[a-z0-9-_.]/g;
  const dot = /[.]{1,}/g;

  new_id = new_id
  	  .toLowerCase()
  	  .match(regex)
          .join("")
          .replace(dot, ".");
  new_id = delSandE(new_id);

  if (new_id.length === 0) {
    new_id = "a";
  } else if (new_id.length >= 16) {
    new_id = new_id.substr(0, 15);
    new_id = delSandE(new_id);
  }
  if (new_id.length <= 2) {
    while (new_id.length < 3) {
      new_id += new_id[new_id.length - 1];
    }
  }
  return new_id;
}

아니 제 코드만 이렇게 더러워요?

고수의 코드는 남다르네.....

10줄로 끝내버리네 이걸.........

 

정규식 공부해야겠다......

댓글