프로그래머스 level2 소수찾기

Kim Yongbin·2023년 9월 7일
0

코딩테스트

목록 보기
50/162

Problem

https://school.programmers.co.kr/learn/courses/30/lessons/42839?language=python3

Solution

from itertools import permutations

def is_prime(num):
    i = 1
    count = 0
    while i * i <= num:
        if i * i == num:
            count += 1
        elif num % i == 0:
            count += 2
        i += 1
    return count == 2

def solution(numbers):
    answer = 0
    number_set = set()
    for i in range(1, len(numbers) + 1):
        for card in permutations(list(numbers), i):
            new_number = int("".join(card))
            if is_prime(new_number):
                number_set.add(new_number)
    return len(number_set)

permutations을 이용하여 숫자 카드 조합을 구하였다.
이후 약수의 개수를 구하여 2개인지 확인하여 소수 여부를 확인하였다.
set을 이용하여 중복을 제거하였다.

Reference

profile
반박 시 여러분의 말이 맞습니다.

0개의 댓글