S E P H ' S

[Python] 소수 만들기 본문

Algorithm/Programmers

[Python] 소수 만들기

yoseph0310 2021. 6. 30. 23:47
 

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

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

programmers.co.kr

1. combinations 를 사용해서 nums에서 3개를 고른다.

2. 반복문 안에서 3개의 수를 더한 수를 구하고 2부터 그 수의 제곱근 까지 나누어서 나머지가 0인 수가 있으면 소수가 아님을 이용한다.

3. 만약 소수라면 answer 의 개수를 1씩 증가 시킨다.

 

from itertools import combinations as c

def solution(nums):
	answer = 0
    comb = list(c(nums,3))
	for n in comb:
    	current_n = sum(n)
        isPrime = True
        for i in range(2, int(current_n ** 0.5) + 1):
        	if current_n % i == 0:
            	isPrime = False
        if isPrime:
        	answer += 1
    return answer

'Algorithm > Programmers' 카테고리의 다른 글

[Python] 소수찾기  (0) 2021.07.06
[Python] 모의고사  (0) 2021.07.05
[Python] 시저 암호  (0) 2021.06.25
[Python] 최대공약수와 최소공배수  (0) 2021.06.25
[Python] 콜라츠 추측  (0) 2021.06.25