본문 바로가기

ComputerScience/Algorithm

[프로그래머스] 소수만들기

function solution(nums) {
    var len = nums.length
    var answer =0;
     for(var i=0;i<=len-3;i++)
         {
             for(var j=i+1;j<=len-2;j++)
            {

                for(var k=j+1;k<=len-1;k++)
                {
                    var cnt = nums[i]
                    cnt += (nums[j]+nums[k])
                    if(primenumber(cnt))
                       {
                       answer++;
                        }
                }
             }
             
         }
        return answer
    }
    
    function primenumber(num)
    {
        var flag=true;
        var ener = Math.floor(Math.sqrt(num))
        for(var i=2;i<=ener;i++)
       {
           if(num%i===0)
               {
                   flag =false
                    return flag
               }
              
        }
        
        return flag
    }

    solution([1,2,3,4])

for 문을 4번이나 돌아야되는 끔찍한 나의 코드!

더 좋은 방법이 없을까?!

 

소수 관련 문제가 나오면 제곱근까지만 검사해도 되는 것을 기억하자

'ComputerScience > Algorithm' 카테고리의 다른 글

[프로그래머스] 점프와 순간이동  (0) 2020.05.21
Hashing  (0) 2020.05.21
[프로그래머스]멀쩡한 사각형  (0) 2020.05.19
이진트리  (0) 2020.05.16
Non-Comparison Sorting  (0) 2020.05.11