티스토리 뷰
주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 소수가 되는 경우의 개수를 return 하도록 solution 함수를 완성해주세요.
[제한사항]
- nums에 들어있는 숫자의 개수는 3개 이상 50개 이하입니다.
- nums의 각 원소는 1 이상 1,000 이하의 자연수이며, 중복된 숫자가 들어있지 않습니다.
3개의 수를 합치고 중복은 없으니 모든 경우에 대해서 구하기 위해 삼중 for문을 사용하였다. 문제를 푼 후 생각해보니 제한사항 중에서 원소는 1000이하의 자연수 이므로 에라토스테네스의 체를 이용하여 nums의 값을 판별하면 좋겠다는 생각을 하였다. 하지만 여기서 범위를 1001개로 하면안된다. 왜냐하면 998+999+1000일수도 있기 때문이다.(거의 3000)
즉 3000개 정도로 잡고 돌려야 가능하다.
[내 풀이]
에라토스테네스의 체에 대해 공부를 좀 하였다.(알고리즘 카테고리에 정리)
'알고리즘' 카테고리의 다른 글
<Programmers> 영어 끝말잇기 (0) | 2020.05.04 |
---|---|
<Programmers> 점프와 순간 이동 (0) | 2020.05.02 |
<Programmers> 짝지어 제거하기 (0) | 2020.05.01 |
<Programmers> N개의 최소공배수 (0) | 2020.04.30 |
<Programmers> JadenCase 문자열 만들기 (0) | 2020.04.30 |