문제링크: 소수 찾기
✍🏻 Information
| content | |
|---|---|
| 언어 | python |
| 난이도 | ⭐️⭐️ |
| 풀이시간 | 17분 |
| 제출횟수 | 1 |
| 인터넷검색유무 | yes |
🍒 My Code
from itertools import permutations
def solution(numbers):
numbers = list(numbers)
answer = []
for i in range(1,len(numbers)+1):
n = list(permutations(numbers,i))
for num in n:
tmp_num = int("".join(num))
#소수인지 확인
isPrime = True
if tmp_num==0 or tmp_num==1:
isPrime = False
for j in range(2,tmp_num):
if tmp_num%j==0:
isPrime=False
break
#소수면 answer에 넣어줌
if isPrime==True:
answer.append(tmp_num)
return len(set(answer))
💡 What I learned
문자열을 한 글자씩 분리하여 리스트에 저장: list(str)문자열을 한 글자씩 분리하여 int형태로 리스트에 저장: list(map(int, str))list로 되어 있는 문자열 데이터들을 설정한 구분자(separator)로 구분하여 문자열 형태로 반환: 구분자.join(list_이름). split의 반대 함수.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)