https://school.programmers.co.kr/learn/courses/30/lessons/42839
완전 탐색
from itertools import permutations
def solution(numbers):
answer = 0
perm = []
for i in range(1, len(numbers)+1):
perm += set(permutations(list(numbers), i))
prime_number = set(map(int, (map(''.join, perm))))
eratos = [False, False] + [True] * (max(prime_number)-1)
for idx, val in enumerate(eratos):
if val:
for i in range(idx*2, max(prime_number)+1, idx):
eratos[i] = False
for p in prime_number:
if eratos[p]:
answer += 1
return answer
permutations, set, 중첩 map, join, 에라토스테네스 체.. 엄청 다양하게 사용했다.
타인 코드
from itertools import permutations
def solution(n):
a = set()
for i in range(len(n)):
a |= set(map(int, map("".join, permutations(list(n), 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)
내일 다시 보기