문제 58. 소수 만들기
nums.sort((a,b)=> a - b).forEach((element, index) =>
{
})
로 nums에 있는 배열을 오름차순 정렬하고,
forEach문으로 배열의 요소를 순회했다.
forEach문 안에서는
for(let i = index + 1; i < nums.length - 1; i++)
{
for(let j = i + 1; j < nums.length; j++)
{
let temp = element + nums[i] + nums[j]
if(isPrime(temp)) count++;
}
}
반복문을 작성해
element, num[i], nums[j]를
더할 수 있게 만들어줬다.
그렇게 더해진 숫자 temp는
isPrime 함수의 input으로 들어가
function isPrime(num)
{
for (let i = 2; i <= Math.sqrt(num); i++)
{
if (num % i === 0) return false;
}
return true;
}
(소수를 검증하는 부분을 만드는게 힘들었습니다...)
소수이면 true를 소수가 아니면 false를 반환 받을 수 있게 만들었다.
if(isPrime(temp)) count++;
소수이면 count를 증가시켜줬다.
제출한 코드 :
function isPrime(num)
{
for (let i = 2; i <= Math.sqrt(num); i++)
{
if (num % i === 0) return false;
}
return true;
}
function solution(nums)
{
let count = 0;
nums.sort((a,b)=> a - b).forEach((element,index)=>
{
for(let i = index + 1; i < nums.length - 1; i++)
{
for(let j = i + 1; j < nums.length; j++)
{
let temp = element + nums[i] + nums[j]
if(isPrime(temp)) count++;
}
}
})
return count
}