[Algorithm] 프로그래머스: 소수 찾기

1 분 소요

자바스크립트 배열에 해당 원소 존재 여부 확인하기

var a = [1,2,3,4,5]
console.log(a.includes(1) === true)

// true

자바스크립트 더미 배열 만들기

파이썬처럼 [False] * N 이런 식으로 배열을 만들 수 없는 것 같음

var visited = [];
for (var i = 0; i < 3; i++) {
  visited.push(false);
}
console.log(visited)

// [false, false, false]

풀이 소스코드

function solution(numbers) {
  var answer = 0;
  var a = String(numbers);
  a = a.split("");
  var visited = [];
  for (var i = 0; i < a.length; i++) {
    visited.push(false);
  }
  var prime = [];

  function isPrime(num) {
    if (num !== 0 && num !== 1) {
      for (var i = 2; i < num; i++) {
        if (num % i === 0) {
          return false;
        }
      }
      return true;
    } else {
      return false;
    }
  }

  function dfs(L, s) {
    if (isPrime(Number(s))) {
      if (prime.includes(Number(s)) === false) {
        prime.push(Number(s));
        answer += 1;
      }
    }
    if (L === a.length) {
      return;
    } else {
      for (var i = 0; i < a.length; i++) {
        if (visited[i] === false) {
          visited[i] = true;
          dfs(L + 1, s + a[i]);
          visited[i] = false;
        }
      }
    }
  }

  dfs(0, "");
  return answer;
}

console.log(solution("17"));
// 3 [7, 17, 71]

카테고리:

업데이트:

댓글남기기