프로그래머스 / Level1 , 2021 KAKAO BLIND RECRUITMENT , 신규 아이디 추천 자바스크립트 , JS
문제 출처
https://school.programmers.co.kr/learn/courses/30/lessons/72410
풀이
이게 Level1 ? 레벨 정하는 기준이 궁금
프로그래머스 레벨 2 문제들보다 로직 신경쓸게 더 많았음.
정답
const check = (Arr) => {
// 맨 앞에 마침표 제거
if (Arr[0] === ".") Arr = Arr.splice(1, Arr.length - 1);
// 맨 뒤에 마침표 제거
if (Arr[Arr.length - 1] === ".") Arr = Arr.splice(0, Arr.length - 1);
return Arr;
};
function solution(new_id) {
var answer = "";
let arr = [];
const regexA = /^[a-z|A-Z]+$/; // 알파벳인지 확인
const regexN = /^[0-9]+$/; // 숫자인지 확인
for (let i of new_id) {
if (regexA.test(i) === true) {
arr.push(i.toLowerCase()); // 소문자로 집어 넣기
} else if (regexN.test(i) === true || i === "-" || i === "_") {
arr.push(i);
} else if (i === ".") {
if (arr[arr.length - 1] === ".") continue;
arr.push(i);
}
}
arr = check(arr);
if (arr.length === 0) arr.push("a");
if (arr.length <= 2) {
while (arr.length !== 3) {
arr.push(arr[arr.length - 1]);
}
}
if (arr.length > 15) {
arr = check(arr.splice(0, 15));
}
answer = arr.join("");
return answer;
}
반응형
'알고리즘 공부 > 프로그래머스 - 자바스크립트' 카테고리의 다른 글
프로그래머스 / Level1 , 2022 KAKAO BLIND RECRUITMENT , 신고 결과 받기 자바스크립트 , JS (0) | 2022.09.20 |
---|---|
프로그래머스 / Level1 , 2022 KAKAO TECH INTERNSHIP , 성격 유형 검사하기 자바스크립트 , JS (1) | 2022.09.20 |
프로그래머스 / Level2 , 2017 팁스타운 , 예상 대진표 자바스크립트 , JS (0) | 2022.09.20 |
프로그래머스 / Level2 , 연습문제 , N개의 최소공배수 자바스크립트 , JS (0) | 2022.09.19 |
프로그래머스 / Level2 , 탐욕법(Greedy) , 구명보트 자바스크립트 , JS (0) | 2022.09.19 |