호지

[프로그래머스] 소수 만들기 문제풀이 JS 본문

알고리즘/프로그래머스

[프로그래머스] 소수 만들기 문제풀이 JS

_hoji

nums에서 3개의 수를 뽑기 위해 3중 for문을 돌렸다.

그리고 3개의 수의 합에 대해 소수판별을 하기 위해,

3개의 수를 더한 값 num을 만들고

2부터 n*n이 num인 순간까지 나누어 떨어지는 수가 있는지 판별하고,

나누어 떨어지는 수가 없었다면 해당 수는 소수이기 때문에

answer값을 1증가 한다.

위 과정을 반복하면 nums에서 3개의 수를 뽑아 더했을때

소수인 경우의 수를 모두 구할 수 있다.

function solution(nums) {
  var answer = 0
  for (let i = 0; i < nums.length; i++) {
    for (let j = i + 1; j < nums.length; j++) {
      for (let k = j + 1; k < nums.length; k++) {
        let num = nums[i] + nums[j] + nums[k]
        let n = 0
        for (n = 2; n * n <= num; n++) {
          if (num % n === 0) {
            break
          }
        }
        if (n * n > num) answer++
      }
    }
  }
  return answer
}

https://school.programmers.co.kr/learn/courses/30/lessons/12977

Comments