컴공생의 다이어리

[프로그래머스] 소수 찾기 - 파이썬(Python) 본문

Development/Algorithm & Coding Test

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

컴공 K 2022. 4. 17. 00:01

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

 

 

import itertools


def is_prime(num):	# 소수 판별
    if num < 2:
        return False

    for n in range(2, num):
        if num % n == 0:
            return False
    return True


def solution(numbers):
    prime_num_candidate = []

    for i in range(len(numbers)):
        prime_num_candidate.extend(map("".join, itertools.permutations(numbers, i + 1)))

    prime_num_candidate = set(map(int, prime_num_candidate))

    answer = 0

    for num in prime_num_candidate:
        if is_prime(num):
            answer += 1

    return answer

 

 

아래는 프로그래머스에서 공개한 다른 사람의 풀이에 있던 것이다.

from itertools import permutations


def solution(numbers):
    a = set()
    
    for i in range(len(numbers)):
        a |= set(map(int, map("".join, permutations(list(numbers), i + 1))))
    
    a -= set(range(0, 2))
    for i in range(2, int(max(a) ** 0.5) + 1):
        a -= set(range(i * 2, max(a) + 1, i))
    return len(a)

 

 

 

 

 

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

 

코딩테스트 연습 - 소수 찾기

한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이

programmers.co.kr

 

728x90
반응형
Comments