Today/Study

23/12/06

shulk 2023. 12. 6. 20:42

프로그래머스 소수 만들기

문제

 

 

from itertools import combinations
import math

def solution(nums):
    answer = 0

    for i in combinations(nums,3):
        for k in range(2,int(math.sqrt(sum(i)))+1):
            if sum(i) % k == 0: 
                break
        else:
            answer+=1

 

nums에 있는 리스트에서 3개를 골라 소수인지 판별 해야한다는걸보고 바로 combinations이 생각났다!!

(combinations는 순서를 고려하지 않고 조합의 경우를 구할때 사용)

3개의 조합 경우를 각각 다 더하고 소수인지 판별하면 끝인데 여기서 소수인지 효율적으로 구하는 방법은 2부터 해당값의 제곱근+1 까지만 나머지가 0인지 판별하면 된다.