개발공부/algorithm

[프로그래머스][python] 소수찾기

so.py 2021. 6. 6. 20:29

문제

 

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

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

programmers.co.kr

 

나의 코드

  1. 주어진 숫자의 길이만큼 순열을 만들고
  2. 각 순열로 만들어진 숫자에 대해 소수인지 확인한다.

간단!

import itertools

def prime(num):
    if num > 1:
        for i in range(2, int(num/2)+1):
            if (num % i) == 0:
                return False
        else:
            return True

    else:
        return False
    
def solution(numbers):
    res = set()
    for i in range(1, len(numbers) + 1):
        a = list(itertools.permutations(numbers, i))
        res.update(int(''.join(b)) for b in a)
    
    cnt = 0
    for r in res:
        if prime(r):
            cnt += 1
            print(r)
            
    return cnt