본문 바로가기
개발 공부/알고리즘 개념+문제풀이

[알고리즘 문제풀이]3개의 수를 더한 숫자를 소수 만들기

by 크롱이크 2021. 6. 16.

문제풀이

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

 

제한사항

  • nums에 들어있는 숫자의 개수는 3개 이상 50개 이하입니다.
  • nums의 각 원소는 1 이상 1,000 이하의 자연수이며, 중복된 숫자가 들어있지 않습니다.

입출력예시

코드

function solution(nums) {
    let answer = 0, number=0;
    for(let i=0;i<nums.length-2;i++){
        for(let j=i+1;j<nums.length-1;j++){
            for(let l=j+1;l<nums.length;l++){
                number=nums[i]+nums[j]+nums[l];
                let count=0;
                for(let k=1;k<=number;k++){
                    if(number%k==0) count++;
                }
                if(count==2) answer++;
            }
        }
    }
    return answer;
}

해석

1. 세수를 합해야했기에 반복몬을 세번이나 썼다.

2. 그렇게 해서 세수가 더해진 모든 경우의 수를 찾고,

3. 그 수들이 1부터 자기까지 나눠지는 것을 찾아 카운터를 센다.

4. 카운트가 2인(자기자신과 1 뿐) 것이 있을때만 answer에 카운트 추가 

 

끝없는 반복문...

반응형

댓글