[파이썬/Python/프로그래머스] 완전탐색 > 소수찾기

SooYeon Yeon·2022년 5월 15일
0

파이썬/알고리즘

목록 보기
13/35
from itertools import permutations

def solution(numbers):
    answer = 0
    number_list = list(numbers)
    permL = []

    for i in range(1, len(numbers) + 1):
        permL += list(permutations(number_list, i))
    arr = [int(("").join(p)) for p in permL]
    arr = list(set(arr))

    for i in arr:
        if isPrime(i):
            answer += 1
    return answer

def isPrime(a):
    if a <= 1:
        return False
    i = 2
    while i <= a // 2:
        if a % i == 0:
            return False
        i += 1
    return True

모든 순열을 생성하는 데 어떻게 해야할 지 막막해서 찾아봤더니 permutations를 쓸 수 있었다. 직접 perm 함수를 만들수도 있지만 라이브러리를 쓰기로 했다.

perm 함수로 모든 경우의 수를 만들고 각각을 isPrime함수로 소수 여부를 판단하여 answer을 증가시켰다.

0개의 댓글

관련 채용 정보