본문 바로가기
코딩공부/프로그래머스 (python)

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

by CodingKwon 2021. 7. 16.

문제 링크 (Leve 1)

https://programmers.co.kr/learn/courses/30/lessons/12977

 

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

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

programmers.co.kr

 

나의 코드 (python)

from itertools import combinations

# 소수 구하기
def check(a,b,c):
    sum = a + b + c
    for i in range(2, sum):
        # 소수가 아니면 0 반환
        if sum % i == 0:
            return 0
    # 소수면 1 반환
    else:
        return 1

def solution(nums):
    answer = 0
    # 3개의 조합을 구함
    arr = list(combinations(nums, 3))
    # 세 수의 조합이 소수인지 카운팅
    for a,b,c in arr:
        answer += check(a,b,c)

    return answer

 

3개의 합의 소수를 구할 check 함수를 구했습니다.

이 문제에서 배열에 3개의 조합을 구할때 list(combinations(nums, 3))을 사용한다면 쉽게 3개 수의 조합을 구할 수 있습니다.

이를 사용하기 위해서는 from itertools import combinations를 추가해야 합니다.

댓글