[프로그래머스](python) 소수 만들기 -Summer/Winter Coding(~2018)

berry ·2021년 5월 27일
0

Algorithm

목록 보기
32/77
post-thumbnail

문제


🧩 소수


🧩 Pseudo code

  • sum_numslist = sum(nums 조합된 리스트들 각각)
    If sum_nums in list(Prime_numbers)
    add sum_nums
    return len(added list)

🧩 리스트의 모든 조합 구하기

from itertools import permutations/combinations/product

📌 리스트 한 개 내에서의 조합
permutations, combinations

📌 리스트 두 개 이상에서의 조합
product


  • from itertools import permutations
    "중복 허용"

  • from itertools import combinations
    "중복 비허용"

  • from itertools import product


🏁 내 풀이

def solution(nums):

    answer = 0
    numcom = list(combinations(nums, 3))
    sum_numcom = [sum(i) for i in numcom]
    
    n = 3000
    def prime_number(n):
        pnumber = [True] * n

        m = int(n ** 0.5)
        for i in range(2, m+1):
            if pnumber[i] == True:
                for j in range(i+i, n, i):
                    pnumber[j] = False

        return [i for i in range(2,n) if pnumber[i] == True]
    
    from itertools import combinations


    answer += len([i for i in sum_numcom if i in prime_number(n)])
    return answer

🧩 틀린 풀이

1) n = 1000 이하의 자연수라고 해서 1000을 넣었을 때

2) n = 5000 으로 확 높여버렸을 때

다흐흑..

📌 해결

  • n = 3000

profile
Engineer

0개의 댓글