S E P H ' S

[Python] 소수 찾기 본문

Algorithm/Programmers

[Python] 소수 찾기

yoseph0310 2021. 8. 25. 18:56
 

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

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

programmers.co.kr

풀이

1. numbers로 만들 수 있는 모든 숫자를 만든다.

2. 순서에 따라 다른 숫자가 되기 때문에 순열을 사용한다.

3. 만들어진 모든 수가 소수인지 판별하고 카운트 한다.

 

from itertools import permutations as perm

def solution(numbers):
    def isPrime(n):
        if n in (0,1):
            return False
        else:
            for i in range(2, int(n**0.5)+1):
                if n % i == 0:
                    return False
            return True
    
    answer = []
    
    for i in range(1, len(numbers)+1):
        arr = list(perm(numbers, i))
        for j in range(len(arr)):
            num = int(''.join(map(str, arr[j])))
            if isPrime(num):
                answer.append(num)
    
    answer = list(set(answer))
    
    return len(answer)

'Algorithm > Programmers' 카테고리의 다른 글

[Python] 파일명 정렬  (0) 2021.08.25
[Python] 124 나라의 숫자  (0) 2021.08.25
[Python] 가장 큰 정사각형 찾기  (0) 2021.08.24
[Python] n진수 게임  (0) 2021.08.23
[Python] 올바른 괄호  (0) 2021.08.23