[Level2] 소수 찾기

🛠 문제

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


👩🏻‍💻 해결 방법

해당 숫자에서 만들 수 있는 모든 수를 찾기 위해 1부터 숫자의 길이만큼 1씩 값을 늘려가며 permutation을 실행시켰다
가능한 모든 경우의 수를 구한 num 리스트를 isPrime 함수에 인자값으로 전달하여 하나씩 소수인지 판별하는 과정을 통해 답을 구할 수 있었다

소스 코드

from itertools import permutations
def isPrime(num):
    prime = []
    for n in num:
        cnt = 0
        for i in range(2, n):
            if n % i == 0:
                cnt += 1
                break
        if n > 1 and cnt == 0:
            prime.append(n)
    return len(prime)

def solution(numbers):
    num = []
    for i in range(1, len(numbers) + 1):
        tmp = permutations(numbers, i)
        for j in tmp:
            tmp_str = "".join(j)
            num.append(int(tmp_str))
    num = list(set(num))
    return isPrime(num)

좋은 웹페이지 즐겨찾기