FE PARADISE

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

자료구조 & 알고리즘

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

PARADISE247 2024. 11. 17. 23:09
반응형

 

 

프로그래머스

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

 

반응형