최대 1 분 소요

소수 만들기

문제 정리

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

입력

[1,2,3,4,5]

처리 과정

  1. itertools 라이브러리를 사용해 combination을 구한다.
  2. 1번에서 구한 combination의 합이 소수라면 cnt 증가

출력

1

풀이

import itertools as it

def solution(nums):
    cnt=0
    for arr in it.combinations(nums,3): # arr는 하나의 완성된 조합 (리스트)
        if isPrime(sum(arr)):
            cnt+=1
    return cnt

def isPrime(x):
    if x==0 or x==1:
        return False
    else:
        for i in range(2,(x//2)+1):
            if x%i==0:
                return False
        return True

정리

  • import itertools as it: combination을 구하기 위한 itertools 라이브러리 임포트 (it.combination()으로 사용 가능)
  • isPrime()에서 for문 범위는 (x//2)+1까지만 해도 됨


💛 개인 공부 기록용 블로그입니다. 👻

맨 위로 이동하기