영어에선 a, e, i, o, u 다섯 가지 알파벳을 모음으로 분류합니다. 문자열 my_string이 매개변수로 주어질 때 모음을 제거한 문자열을 return하도록 solution 함수를 완성해주세요.
//내 코드
function solution(my_string) {
let result = my_string.split("");
for(let i of ["a","e","i","o","u"]){
result = result.filter(v => v!==i);
}
return result.join("");
}
//다른 사람 코드
function solution(my_string) {
return my_string.replace(/[aeiou]/g, '');
} ///[aeiou]/g 정규식 표현 쓰기
//aeiou중에 문자가 있다면, 빈문자로 치환하기
문자열 my_string이 매개변수로 주어질 때, my_string 안에 있는 숫자만 골라 오름차순 정렬한 리스트를 return 하도록 solution 함수를 작성해보세요.
//내 코드
function solution(my_string) {
return my_string.split("").map(v => Number(v)).filter(v => !isNaN(v)).sort((a,b) => a-b);
}
//다른 사람 코드
function solution(my_string) {
return my_string.match(/\d/g).sort((a, b) => a - b).map(n => Number(n));
}//정규식 사용 : match(/\d/g) = 숫자[0-9]배열에서 맞는 것만 남기기 -> ["1","2"] 숫자가 string타입으로 나옴
//여기서 sort를 사용해도 정렬이 된다.
//마지막에 number타입으로 변환
문자열 my_string이 매개변수로 주어집니다. my_string안의 모든 자연수들의 합을 return하도록 solution 함수를 완성해주세요.
//내 코드
function solution(my_string) {
return my_string.match(/\d/g).map(v=>Number(v)).reduce((acc,cur) => acc+cur);
}
//정규표현식 사용, 요소 string-> number로 타입변환,숫자 누적합 구함
소인수분해란 어떤 수를 소수들의 곱으로 표현하는 것입니다. 예를 들어 12를 소인수 분해하면 2 2 3 으로 나타낼 수 있습니다. 따라서 12의 소인수는 2와 3입니다. 자연수 n이 매개변수로 주어질 때 n의 소인수를 오름차순으로 담은 배열을 return하도록 solution 함수를 완성해주세요.
//내 코드
function isPrime(n) {
if (n <= 1) {
return false
}
for (var i = 2;i<n;i++) {
if (n%i==0) {
return false
}
}
return true
}
function solution(n) {
var answer = [];
for(let i=2; i<=n; i++){
if(n%i===0) answer.push(i);
}
return answer.filter(v => isPrime(v));
}
//2~n까지 for문 돌리기
//n%i===0이면 answer.push(i)
//그 중 요소가 소수인 것만 필터링
//다른 사람 코드
function solution(n) {
var answer = [];
for(let i = 2; i <= n; i++) { //2부터 n까지 반복문 돌리기
while (n % i === 0) { //떨어지는게 있으면
n = n / i; //n을 i로 나눠서 for문 반복횟수 줄이기
answer.push(i); //answer에 떨어지는 숫자 넣기
}
}
return [...new Set(answer)];
}
//...new Set : 중복 요소 제거
//반복문을 썼지만 n까지 반복문을 돌지 않고, 중간에 n = n / i;를 써서 반복횟수를 줄였다.
볼 때 마다 느끼는건데 글이나 주석 같은 경우 가독성이 정말 뛰어난 것 같아요!