순열이란 몇 개를 골라 순서를 고려해 나열한 경우의 수를 말한다. 즉, 서로 다른 n 개 중 r 개를 골라 순서를 정해 나열하는 가짓수이며 순열이라는 의미의 영어 ‘Permutation’의 첫 글자 P를 따서 nPr로 표시한다. 출처 : [네이버 지식백과] 순열 Permutation, 順列
import itertools
arr = ['A', 'B', 'C']
nPr = itertools.permutations(arr, 2)
print(list(nPr))
>>> [('A', 'B'), ('A', 'C'), ('B', 'A'), ('B', 'C'), ('C', 'A'), ('C', 'B')]
from itertools import permutations
def is_prime_number(x) :
if x < 2 :
return False
for i in range(2, x) :
if x % i == 0 :
return False
return True
def solution(numbers):
answer = 0
nums = []
for i in range(1, len(numbers)+1) :
nums.append(list(set(map(''.join, permutations(numbers, i)))))
per = list(set(map(int, set(sum(nums, [])))))
for p in per :
if is_prime_number(p) == True :
answer += 1
return answer
소수를 찾는 것보다 문자의 조합으로 만들 수 있는 숫자의 경우의 수를 찾는 것이 더 어려운 문제였다. 결국 경우의 수를 찾지 못해 검색하였다.