반응형
문제
https://school.programmers.co.kr/learn/courses/30/lessons/42839
🐍파이썬
from itertools import permutations
def solution(numbers):
answer = 0
numbers = list(numbers) #numbers를 한글자씩 리스트에 저장
aset = set()
for i in range(1, len(numbers)+1):
for j in permutations(numbers, i): #순열생성
aset.add(int("".join(j))) #int로 형변환해 set에 넣어 중복방지
for a in aset:
if a in [0, 1]: continue #0이나 1이 나올 경우 소수가 아니므로 skip
for k in range(2, int(a**(0.5))+1): #소수 판별
if a % k == 0: #a를 나누어떨어지게 하는 수가 존재한다면
break #소수 아님
else: #나누어떨어지게 하는 수가 존재하지 않는다면
answer += 1 #소수체크
return answer
다른 풀이 방법
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)
반응형
'Problem Solving > 프로그래머스' 카테고리의 다른 글
[프로그래머스|파이썬] 큰 수 만들기 (탐욕법(Greedy)/lv.2) (0) | 2023.06.01 |
---|---|
[프로그래머스|파이썬] 숫자 변환하기 (연습문제/lv.2) (0) | 2023.05.27 |
[프로그래머스|파이썬] 2 x n 타일링 (연습문제/lv.2) (0) | 2023.05.26 |
[프로그래머스|파이썬] 2개 이하로 다른 비트(월간 코드 챌린지 시즌2/lv.2) (0) | 2023.05.25 |
[프로그래머스|파이썬] [1차] 프렌즈4블록 (2018 KAKAO BLIND RECRUITMENT/lv.2) (0) | 2023.05.24 |
[프로그래머스|파이썬] 모음사전 (완전탐색/lv.2) (0) | 2023.05.24 |