티스토리 뷰

알고리즘

<Programmers> 소수 만들기

koyuchang 2020. 5. 2. 15:11

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

 

[제한사항] 

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

 

3개의 수를 합치고 중복은 없으니 모든 경우에 대해서 구하기 위해 삼중 for문을 사용하였다. 문제를 푼 후 생각해보니 제한사항 중에서 원소는 1000이하의 자연수 이므로 에라토스테네스의 체를 이용하여 nums의 값을 판별하면 좋겠다는 생각을 하였다. 하지만 여기서 범위를 1001개로 하면안된다. 왜냐하면 998+999+1000일수도 있기 때문이다.(거의 3000)

즉 3000개 정도로 잡고 돌려야 가능하다.

 

 

[내 풀이]

 

 

에라토스테네스의 체에 대해 공부를 좀 하였다.(알고리즘 카테고리에 정리)

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함