코딩 테스트/프로그래머스 level1

소수 만들기

fullfish 2022. 8. 6. 12:00

아이디어

삼중 for문으로 nums배열을 더하고 에라토스테네스의 채를 사용하여 소수 판별을 했다

 

코드

function solution(nums) {
  let count = 0;
  for (let i = 0; i < nums.length - 2; i++) {
    for (let j = i + 1; j < nums.length - 1; j++) {
      for (let k = j + 1; k < nums.length; k++) {
        let sum = nums[i] + nums[j] + nums[k];
        if (isPrime(sum)) count++;
      }
    }
  }
  return count;
}

function isPrime(num) {
  if (num <= 1) {
    return false;
  }
  if (num % 2 === 0) {
    return num === 2 ? true : false;
  }
  const sqrt = parseInt(Math.sqrt(num));
  for (let i = 3; i <= sqrt; i += 2) {
    if (num % i === 0) {
      return false;
    }
  }
  return true;
}

'코딩 테스트 > 프로그래머스 level1' 카테고리의 다른 글

실패율  (0) 2022.08.11
완주하지 못한 선수  (0) 2022.08.08
음양 더하기  (0) 2022.08.06
숫자 문자열과 영단어  (0) 2022.04.28
신규 아이디 추천  (1) 2022.04.27