알고리즘 - 소수만들기

이동근·2021년 4월 16일
0

알고리즘

목록 보기
11/19

문제

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

코드

접근방법

한 리스트에서 중복없이 3개의 요소를 뽑아내서 더해야한다. x,y,z에서 중복된 부분을 뽑는것에 대해 처리를 해줬다고 생각해서 다른데를 뒤지고 있었다. 알고보니 마음속에서 처리중이었다.

그래서 다시 처리를 해주었다.

소수를 판별해주기 위해 measure_count를 사용해서 약수의 갯수를 찾아준 후에 그게 0이면 소수이다. 이런식으로 해주었다.

다른방법

'Combination'을 사용해서 중복없이 3개를 추출할 수 도 있다.
사용하기 위해선

from itertools import combinations

import를 해준 뒤에 사용하면

이런식으로 tuple 형식으로 3개씩 묶어준다.

그리고


이런식으로 간단하게 3개의 합을 구현 가능 하다.

profile
하루하루 1cm 자라는 개발자

0개의 댓글