티스토리 뷰

728x90

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

 

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

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

programmers.co.kr

 

  • 해설 :

주어진 배열의 숫자들을 3개씩 더하여 만들 수 있는 수들 중 소수의 개수를 찾는 문제이다.

 

 

 

  • 풀이 :

Python의 내장 함수인 itertools 중 combination으로 주어진 배열에서 3개씩 고르는 모든 조합을 찾고 이 조합들의 sum이 소수인지 아닌지 판별하는 isPrime함수를 통해 소수의 개수를 카운트하였다.

 

 

 

 

1
2
3
4
5
6
7
8
9
10
11
from itertools import combinations
 
def isprime(num):
    for i in range(2, num):
        if num % i == 0:
            return False 
    return True 
 
def solution(nums):
 
    return sum(1 for l in combinations(nums,3if isprime(sum(l)))
cs
320x100
댓글
© 2022 WonSeok, All rights reserved