[Python] 프로그래머스(Lv2) - 소수 찾기

Kerri·2021년 3월 2일
0

코테

목록 보기
5/67

안녕하세요 :)

제한사항 n이 크지 않아서 그냥 문제 고대로 풀었습니다..

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

import itertools, math

def solution(numbers):
    numbers = list(numbers)
    make_numbers = set()
    
    for length in range(1, len(numbers) + 1):
        permutation_list = set(list(itertools.permutations(numbers, length)))
        for item in permutation_list:
            item = list(map(''.join, item))
            item = int(''.join(item))
            make_numbers.add(item)
             
    answer = 0
    
    for number in make_numbers:
        if is_prime_number(number):
            answer += 1
    
    return answer
def is_prime_number(n):
    if n >= 2:     
        for i in range(2, int(math.sqrt(n)) + 1): #2부터 n의 제곱근까지의 모든 수를 확인하며
            if n % i == 0:
                return False   
    else:
        return False
    
    return True

파이썬 itertools 이용해서 permutation으로 순열 구했구요.

파이썬에서 itertools 없이 permutation 구현을 하고싶다면 아래 url 참고해도 좋을 것 같습니다.

https://shoark7.github.io/programming/algorithm/Permutations-and-Combinations

profile
안녕하세요 !

0개의 댓글