Front-end Developer
프로그래머스 소수찾기 [파이썬] 본문
문제
문제풀이
from itertools import permutations
import math
def prime_number(n):
num = math.sqrt(n)
if n < 2:
return False
for k in range(2, int(num)+1):
if n % k == 0:
return False
return True
def solution(numbers):
answer = []
#permutation 혹은 combination을 사용해서 숫자의 조합을 구할 수 있다.
#permutation의 두번째 인자에는 조합되는 숫자의 개수를 정한다.
for i in range(1 ,len(numbers)+1):
#map을 사용해서 tuple의 string을 합친다음 list로 만들었다.
lst = list(map(''.join, permutations(list(numbers), i)))
#list안에 공통되는 str을 set으로 단일화 시킨다음 다시 list로 만들었다.
for j in list(set(lst)):
#True값을 반환하면 j를 answer list에 포함시킨다.
if prime_number(int(j)):
answer.append(int(j))
#또 set을 쓰는 이유는 맨 앞자리가 0인 str은 int로 바꿨을 때 0이 사라진다.
#그래서 공통되는 숫자가 생길 수 있다.
return len(set(answer))
'알고리즘' 카테고리의 다른 글
프로그래머스 영어 끝말잇기 [파이썬] (0) | 2021.06.19 |
---|---|
프로그래머스 모의고사 [자바스크립트] (0) | 2021.04.25 |
프로그래머스 두개뽑아서 더하기 [자바스크립트] (0) | 2021.04.25 |
프로그래머스 피보나치 수 [파이썬] (0) | 2021.04.18 |
프로그래머스 크레인 인형뽑기 [파이썬] (0) | 2021.04.18 |
Comments