본문 바로가기
자료구조 & 알고리즘

프로그래머스 신규 아이디 추천 - 자바스크립트

by PARADISE247 2024. 11. 17.
반응형

 

 

프로그래머스

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

programmers.co.kr

신규 아이디 추천 문제

해당 문제는 문제를 읽자마자 정규표현식을 쓰는 것이 좋을 것 같다는 생각이 들었다. 물론 정규표현식 다 까먹어서 강의 다시 듣고 와서 문제 풀었다 ㅋㅋㅋ

 

나의 풀이

아래와 같이 정규표현식을 사용하여 각 순차적인 처리 과정을 수행하였다.

function solution(new_id) {
	let answer = new_id.toLowerCase()
				.replaceAll(/[^a-z0-9\-\_\.]/g,"")
				.replaceAll(/\.{2,}/g, ".")
				.replaceAll(/^\.|\.$/g, "");
    if(answer.length === 0) answer = "a";
    answer = answer.slice(0,15).replaceAll(/\.$/g, "");
    while(answer.length <= 2) answer += answer.charAt(answer.length-1);
    return answer;
}

 

다른 사람들의 풀이를 보고 알게 된 점

 .replace(/^$/, 'a')

이런 식으로 new_id가 빈 문자열이라면 new_id "a"를 대입한다 를 수행할 수 있다.

padEnd

.padEnd(3, id[id.length-1])

padEnd를 이용하여 지정된 문자열 길이에 도달할 때 까지 특정 문자를 문자열 끝에 추가할 수 있다. 

 

String.prototype.padEnd() - JavaScript | MDN

String 값의 padEnd() 메서드는 이 문자열을 주어진 문자열(필요한 경우 반복됨)로 채워서 결과 문자열이 지정된 길이에 도달하도록 합니다. 패딩은 이 문자열의 끝에서부터 적용됩니다.

developer.mozilla.org

 

반응형