본문 바로가기

Problem Solving/programmers

[programmers] Level 1 소수 만들기.py

728x90
반응형
SMALL

프로그래머스 Level 1 소수 만들기를 파이썬을 통해 풀어보았다. 

 

programmers.co.kr/learn/courses/30/lessons/72410programmers.co.kr/learn/courses/30/lessons/12977

 

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

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

programmers.co.kr

소수 만들기.py

 

tomy9729/Algorithm

🐗 내가 직접 작성한 내 코드 🐗. Contribute to tomy9729/Algorithm development by creating an account on GitHub.

github.com

 


Level 1 소수 만들기

#Level 1 소수 만들기.py
from itertools import combinations
def solution(nums):
    answer = 0
    arr = [True]*(max(nums)*3+1) #에라토스테네스의 체를 저장한 배열
    arr[0] = False
    arr[1] = False 
    arr = is_prime_num(max(nums)*3,arr)#에라토스테네스의 체
    num_3 = list(combinations(nums,3)) #조합
    for i in range(len(num_3)) : 
        if arr[sum(num_3[i])] : 
            answer += 1
    return answer

def is_prime_num(n,arr) : 
    for i in range(2,n) : 
        j = 2 
        while i*j <= n : 
            l = i*j 
            arr[l] = False 
            j += 1
    return arr

 

728x90
반응형
SMALL