728x90
https://school.programmers.co.kr/learn/courses/30/lessons/42839?language=python3
1) 주어진 문자열에서 순열을 1개, 2개, 3개,,, 문자열의 길이-1개 까지 뽑아준다.
2) 뽑힌 순열들을 정수로 바꿈과 동시에 set안에 삽입하여 중복을 제거해준다.
3) set안의 정수들 중 소수가 몇개인지 판별하여 개수를 세준다
from itertools import permutations as p
def is_prime(x):
if x<2:return False
for i in range (2, int(x**(1/2) + 1)):
if x % i == 0:
return False
return True
def solution(numbers):
answer = 0
numbers = list(numbers)
siz = len(numbers)
p_nums = set()
is_p_number=set()
p_num=''
for i in range(1,siz+1):
number = list(p(numbers,i))
for num in number:
for atom in num:
p_num+=atom
#print(p_num)
p_nums.add(int(p_num))
p_num=''
for x in p_nums:
if is_prime(x):
is_p_number.add(x)
p_nums=set()
answer = len(is_p_number)
return answer
728x90
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스/파이썬] N으로 표현 (0) | 2023.09.20 |
---|---|
[프로그래머스/파이썬] 카펫 (0) | 2023.09.17 |
[프로그래머스/파이썬] 큰 수 만들기 (0) | 2023.09.14 |
[프로그래머스/파이썬] 조이스틱 (1) | 2023.09.14 |
[프로그래머스/파이썬] 게임 맵 최단거리 (0) | 2023.09.10 |