my_string result
"hi12392" [1, 2, 2, 3, 9]
"p2o4i8gj2" [2, 2, 4, 8]
"abcde0" [0]
function solution(my_string) {
var answer = [];
var arrStr = [...my_string.replace(/[a-z]/g,'')]
return arrStr.map(a=>Number(a)).sort((a,b) => a-b)
}
--> string을 replace 해준 뒤 전개연산자로 넣었다. 배열이 되었으니 map을 사용해 내부 string을 numberb로 바꾸어주고 내림차순 정렬함.
my_string result
"aAb1B2cC34oOp" 10
"1a2b3c4d123" 16
function solution(my_string) {
var answer = 0;
var arr= my_string.match(/[0-9]/g)
for(i=0; i<arr.length; i++){
answer += Number(arr[i])
}
return answer
}
--> string 안에 정규표현한 0-9와 같은 값만 arr에 넣고 다시 arr 내부 값 하나하나를 number로 형 변환한 뒤 더해주었다.
n result
12 [2, 3]
17 [17]
420 [2, 3, 5, 7]
function solution(n) {
var list = [];
function isPrime(n){
if (n == 2)
return true;
for (let i = 2; i < n; i++){
if (n%i == 0){
return false;
}
}
return true;
}
for (let i = 2; i <= n; i++){
if ((isPrime(i))&&(n%i == 0)){
list.push(i);
n = n/i;
}
}
return list;
}
--> 해당 수보다 작은 소수를 구하는 것인데 문제 자체는 어렵지 않으나 어떻게 풀어갈지 계속 헤맸다. 결국 남의 답을 봤지만 소수를 구하는 함수를 이해하기. 더 짧은 답들도 있지만 위 답이 가장 순서대로 풀어쓴 느낌이다
function isPrime(n){
if (n == 2)
return true;
for (let i = 2; i < n; i++){
if (n%i == 0){
return false;
}
}
return true;
}