Programmers

[프로그래머스 / 파이썬 풀이] 소수 찾기

Hoo_Dev 2023. 1. 4. 16:25
from itertools import permutations

def solution(numbers):
    answer = 0
    
    arr = [ num for num in numbers]

    num_lst = []
    for i in range(1, len(arr) + 1):
        a = permutations(arr, i)
        for j in a:
            b = "".join(j)
            num_lst.append(int(b))
    
    set_lst = set(num_lst)
    for i in set_lst:
        flag = 0
        for j in range(2, i//2 + 1):
            if i % j == 0:
                flag = 1
                break
        if flag == 0 and i != 0 and i != 1:
            answer+=1
    
    return answer

permutations 함수를 사용한 풀이.

 

set을 사용하여 중복을 제거하고, 

반복문을 통해 2~본인의 절반 까지 순회를 시키면서 소수를 찾는다.(flag는 소수가 아닐 경우를 체크하기 위함)

0과 1을 제외하고 소수를 찾는다.