[알고리즘 문제풀이] 소수 구하기

😎·2022년 11월 23일
0

알고리즘 문제풀이

목록 보기
26/27

문제 설명
주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 소수가 되는 경우의 개수를 return 하도록 solution 함수를 완성해주세요.

제한사항
nums에 들어있는 숫자의 개수는 3개 이상 50개 이하입니다.
nums의 각 원소는 1 이상 1,000 이하의 자연수이며, 중복된 숫자가 들어있지 않습니다.
입출력 예
nums result
[1,2,3,4] 1
[1,2,7,6,4] 4

내가 작성한 코드

function solution(s) {
   let result =[];
   
   for(let i=0; i<s.length-2; i++){
    for(let j=i+1; j<s.length-1; j++){
      for(let k=j+1; k<s.length; k++){
         result.push(s[i]+s[j]+s[k]);
      }
    }
}
   console.log(result);
   result = result.filter(function(value){
      for(let r=2; r<value; r++){
         if(value%r==0){
            return false;
         }
      }
      return true;
   })
   return result.length;
}

문제해설
각배열의 요소를 3개 더하여 나온값의 경우의 수를 모두 구할수 있는 3중for문 작성...
이후 나온 값들을 result에 저장하여 소수판별하여 통과한 값만 resultd에 재할당 이후 result의 길이를 반환하는 함수

profile
개발 블로그

0개의 댓글