내 풀이
function solution(my_string) {
return my_string.split('').filter(n=> n !== "a" && n !== "e" && n !== "i" && n !== "o" && n !== "u").join('');
}
정규표현식을 이용한 풀이
function solution(my_string) {
return my_string.replace(/[aeiou]/g, '');
}
⭐️ 정규표현식
문자열에서 특정 문자 조합을 찾기 위한 패턴.
https://developer.mozilla.org/ko/docs/Web/JavaScript/Guide/Regular_Expressions
문자열에서 정규표현식을 사용하여 문자만 제거한 후에, 배열에 쪼개 담고 오름차순으로 정렬하여 숫자로 바꿔주었다.
function solution(my_string) {
return my_string.replace(/[^0-9]/g, "").split('').sort((a,b) => a-b).map(n => Number(n));
}
⭐️ 숫자가 아닌 문자만 선택하는 정규표현식 : /[^0-9]/g
제거 : replace( )
숫자로 바꾸기 : Number()
참고) 오름차순 정렬할 때는 축약해서 sort( )라고만 나타내도 됨.
문자열에서 문자만 제거해서 배열에 담고, 다 숫자로 바꾼 후에 더해준다.
(reduce 사용한 거 좋은 아이디어!)
function solution(my_string) {
return Array.from(my_string.replace(/[^0-9]/g, '')).map(n => Number(n)).reduce((acc,cur) => acc + cur);
}
⭐️ reduce( )
: 이전 값과 이후 값을 이용한 연산을 해야할 때 유용함.
⭐️ Array.from(string)
: string을 array로 바꿔주는 함수.
이거 대신split()
을 써도 됨.
소인수는 약수 중 소수인 것이니까 반복문으로 약수를 구한 다음, 소수를 판별하는 함수에 넣어 둘 다 만족하면 return하도록 한다.
function solution(n) {
var answer = [];
function isPrime(num) {
if(num === 2)
return true;
for(let i = 2; i<num; i++){
if(num % i === 0){
return false;
}
}
return true;
}
for(i=2;i<=n;i++){
if(n % i === 0 && isPrime(i) == true){
answer.push(i);
}
}
return answer;
}