Today.dev

[PG_12977/Python] 소수 만들기 본문

알고리즘/프로그래머스

[PG_12977/Python] 소수 만들기

otu165 2021. 6. 22. 20:32

문제

12977번: 소수 만들기

 

코딩테스트 연습 - 소수 만들기

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

programmers.co.kr

 


풀이

배열에서 고정적으로 3개를 뽑아서 검사해야 하기 때문에 조합을 사용해서 가능한 리스트를 만든다.

후에 반복문을 돌리며 숫자들의 총합이 소수인지 아닌지 구한다.

import math
from itertools import combinations


def is_prime(n):  # 소수 판별
    for i in range(2, int(math.sqrt(n)) + 1):
        if n % i == 0:
            return False

    return True


def solution(nums):
    answer = 0

    able = combinations(nums, 3)  # 조합
    for i in able:
        if is_prime(sum(i)):
            answer += 1

    return answer

 

Comments