신규 아이디 추천
2021 KAKAO BLIND RECRUITMENT
제출답안
function solution(new_id) {
const reg = /^[a-z0-9-_.]$/;
const tmp = new_id.toLowerCase().split('').filter((v) => reg.test(v));
const answer = [];
tmp.forEach((v) => {
answer.push(v);
if (v === '.' && answer[answer.length - 2] === v) answer.pop();
});
if (answer[0] === '.') answer.shift();
if (answer[answer.length - 1] === '.') answer.pop();
if (answer.length < 1) answer.push('a');
if (answer.length > 15) answer.splice(15);
if (answer[answer.length - 1] === '.') answer.pop();
while (answer.length < 3) answer.push(answer[answer.length - 1]);
return answer.join('');
}
풀이
- 문제에서 설명하고 있는 7단계 처리 과정대로 코드 작성
학습내용
정규표현식
패턴 생성
- 2단계에서 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.)만 사용가능하다는 조건을 참고
- 변수 reg에 저장
- 자바스크립트에서 정규식 패턴을 사용하기 위해서는 슬래시(/)로 감싸서 작성해야 한다.
정규 표현식 메서드 test
- 형태 : '정규식 패턴'.test(판별할 문자)
- 판별을 만족하면 true를 반환
- 배열 메서드 filter와 함께 사용하여 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.)인 문자만 배열 tmp에 저장
그 외
- 문자열 메서드 match, replace, split, search와도 함께 사용 가능하다.
배열 활용
조건에 맞게 조작하기 위해 문자열 하나하나 쪼개어 배열에 보관했다.
참고
'Algorithm' 카테고리의 다른 글
[프로그래머스] 숫자 문자열과 영단어 with Javascript (0) | 2022.03.30 |
---|---|
[프로그래머스] 키패드 누르기 with Javascript (0) | 2022.03.26 |
[프로그래머스] 크레인 인형뽑기 with Javascript (0) | 2022.03.23 |
[프로그래머스] 실패율 with Javascript (0) | 2021.12.21 |
[프로그래머스] 다트게임 with Javascript (0) | 2021.12.17 |