코딩테스트/JavaScript
[코딩테스트] 뒤집은 소수
CODE_PLAN
2023. 12. 25. 21:38
나의 풀이
function solution(arr) {
let answer = [];
answer == arr.reverse();
answer = answer.filter((arr) => {
// n 을 나누어 0이 되는 수를 담을 배열
let a = [];
for (let i = 2; i < n + 1; i++) {
n % i === 0 && a.push(i);
}
// 나누어 0이되는 수가 자기자신과 1이면 소수
// 2부터 시작했으므로 1은 제외하고 자기자신으로 나눠지면 반환
return a[0] === arr ? true : false;
});
// for (let x of s) {
// if () {
// // 나눈게 1, 자기자신
// }
// }
return answer;
}
let arr = [32, 55, 62, 20, 250, 370, 200, 30, 100];
console.log(solution(arr));
</script>
우선 뒤집는거랑 소수를 구현하는데 애썼다..
해설 정답
<script>
function isPrime(num){
if(num===1) return false;
for(let i=2; i<=parseInt(Math.sqrt(num)); i++){
if(num%i===0) return false;
}
return true;
}
function solution(arr){
let answer=[];
for(let x of arr){
let res=0;
while(x){
let t=x%10;
res=res*10+t;
x=parseInt(x/10);
}
if(isPrime(res)) answer.push(res);
}
return answer;
}
let arr=[32, 55, 62, 20, 250, 370, 200, 30, 100];
console.log(solution(arr));
</script>
풀이 포인트 1) while문 안의 뒤집는 방법에 대해서 익숙해야함
풀이 포인트2) 함수 하나를 하나더 만들어서 num === 1 이뜻은 즉, 소수인경우인데 이경우는 빼고 하는거다
밑에는 나누어떨어지는 즉, 약수가 존재할때 조건을 달아준것