📌문제
https://programmers.co.kr/learn/courses/30/lessons/42839
🎖️난이도
Level 2
✔️풀이
# sol1
def isPrime(a):
if(a<2):
return False
for i in range(2,a):
if(a%i==0):
return False
return True
def solution(numbers):
import itertools
numbers_list = list(numbers) # ['0', '1', '1']
l = len(numbers_list)
per_set = set() # set초기화 ==> {} : dic 초기화!
for i in range(l):
per_set.update(set(map(int, map(''.join, itertools.permutations(numbers_list, i+1)))))
print(per_set)
cnt = 0
for item in per_set:
if (isPrime(item)):
cnt += 1
return cnt
# sol2) math.ceil(), math.sqrt() 이용 => 시간 단축!
import itertools
import math
def isPrime(n):
if n < 2 :
return False
if n == 2:
return True
for i in range(2, math.ceil(math.sqrt(n))+1):
if n % i == 0 :
return False
return True
def solution(numbers):
numbers_list = list(numbers) # 한 요소씩 쪼개기
prime_set = set()
for i in range(len(numbers_list)):
for j in set(map(''.join, itertools.permutations(numbers_list, i+1))):
if(isPrime(int(j))) :
print("n :", j)
prime_set.add(int(j))
print(prime_set)
return len(prime_set)
'[ 알고리즘 ] > Brute Force' 카테고리의 다른 글
[백준] 1759. 암호 만들기 (0) | 2022.07.02 |
---|---|
[프로그래머스] 두 개 뽑아서 더하기 (0) | 2022.07.02 |
[프로그래머스] 카펫 (0) | 2022.06.29 |
[프로그래머스] 모의고사 (0) | 2022.06.29 |
[백준] 11504. 돌려 돌려 돌림판! (0) | 2022.06.29 |