[프로그래머스] k진수에서 소수 개수 구하기 - javascript
📖 문제링크
https://programmers.co.kr/learn/courses/30/lessons/92335
문제 설명
숫자가 주어지고 주어진 k진수로 바꾼 후 변환된 수 안에 조건에 맞는 소수가 몇 개인지를 알아내면 된다.
- 양쪽에 0이 있는 경우
- 오른쪽에 0이 있는 경우
- 왼쪽에 0이 있는 경우
📃 조건
- 1 ≤ n ≤ 1,000,000
- 3 ≤ k ≤ 10
👨💻 문제풀이
필자가 푼 문제풀이
function primeNumber(number) {
for(let i = 2; i*i <= number; i++){
if(number % i == 0) return false;
}
return true;
}
function solution(n, k) {
let result = 0;
let changeNumber = n.toString(k);
const numbers = changeNumber.split("0");
for (let number of numbers) {
if (number === '') continue;
if (+number === 1) continue;
if (primeNumber(+number)) result += 1;
}
return result;
}
먼저 toString을 이용해 k진수로 바꾼 후 split으로 0을 기준으로 숫자들을 나눠주었다.
그 다음 1인 부분과 0이 연속으로 있을 경우에 나오는 빈문자열을 제외한 부분에 대해 소수인지 아닌지를 판단 한 후 그 결과값을 return하였다.
🧐 다른 사람들의 코드
function isPrime(n){
if(typeof n !== 'number' || n < 2) return false
for(let i=2; i<=Math.sqrt(n); i++){
if(n%i === 0) return false
}
return true
}
function solution(n, k) {
let nums = n.toString(k).split('0');
return nums.filter(v=>isPrime(+v)).length
}
filter를 적극적으로 활용해야겠다는 생각이 드는 풀이다
2022.01.30
Author And Source
이 문제에 관하여([프로그래머스] k진수에서 소수 개수 구하기 - javascript), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@kimjiwonpg98/프로그래머스-k진수에서-소수-개수-구하기-nodejs저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)