Level 0) 문자열, 정렬, 사칙연산, 수학

Doozuu·2023년 1월 8일
0

프로그래머스 (JS)

목록 보기
13/183

📌 문제 1. 모음 제거

내 풀이

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



📌 문제 2. 문자열 정렬하기(1)

문자열에서 정규표현식을 사용하여 문자만 제거한 후에, 배열에 쪼개 담고 오름차순으로 정렬하여 숫자로 바꿔주었다.

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( )라고만 나타내도 됨.



📌 문제 3. 숨어있는 숫자의 덧셈(1)

문자열에서 문자만 제거해서 배열에 담고, 다 숫자로 바꾼 후에 더해준다.
(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()을 써도 됨.



📌 문제 4. 소인수분해

소인수는 약수 중 소수인 것이니까 반복문으로 약수를 구한 다음, 소수를 판별하는 함수에 넣어 둘 다 만족하면 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;
}
profile
모든게 새롭고 재밌는 프론트엔드 새싹

0개의 댓글