자바 Java/프로그래머스

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

꿈꾸me 2022. 3. 16. 17:52
728x90

프로그래머스 '소수 만들기' 풀이

 

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

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

나의 풀이 )

아래 더보기란에 추가 설명

더보기

1. 중첩 for문을 이용해 더하기 위한 세 개의 숫자를 nums에서 뽑았습니다.

   숫자는 중복될 수 없으므로, j는 앞에 i에서 고른 숫자 다음에서 골라주고 마찬가지로 k도 j에서 고른 숫자 다음부터 골라줍니다.

   (저는 if문으로 세 숫자가 같지 않을 조건을 추가했지만, 이 단계에서 이미 해결해주었기 때문에 사실 이는 굳이 필요 없는 코드문입니다!)

2. 이렇게 고른 세 개의 숫자의 합이 소수인지 판별하기 위한 prime 함수를 따로 만들어주었습니다.

   +) 소수인지 아닌지 판별하는 함수 안의 내용은 다른 글에서 이미 포스팅했기 때문에 그 글을 참고해주세요!

[코드업] 1274 : 소수 판별 (tistory.com)

3. prime 함수를 통해 세 개의 숫자의 합이 소수이면 answer에 +1을 하게 해 줍니다.

수정할 부분이 발견되거나 궁금한 점이 있으면 댓글 남겨주세요.

성장을 위한 댓글은 환영입니다 :)

728x90