https://school.programmers.co.kr/learn/courses/30/lessons/42839
from itertools import permutations
def isTrue(n):
for i in range(2,n):
if n % i == 0:
return False
return True
def solution(numbers):
answer = 0
arr = list(numbers)
check = []
for i in range(1,len(numbers)+1):
for j in permutations(arr,i):
s = ''
for k in j:
s += k
if int(s) != 1:
if int(s) !=0:
if int(s) not in check:
check.append(int(s))
if isTrue(int(s)):
answer+=1
return answer
전형적인 그리디 문제이다.
해당 숫자로 구할 수 있는 수를 모두 구한 다음, 하나씩 소수인지 비교하면 끝나는 문제이다.
구할 수 있는 모든 수는 itertools 모듈을 이용하면 쉽게 구할 수 있다.
'알고리즘' 카테고리의 다른 글
백준) 거스름돈-python (0) | 2023.01.30 |
---|---|
백준) 잃어버린 괄호-python (0) | 2023.01.30 |
프로그래머스) 2 x n 타일링-python (0) | 2023.01.29 |
프로그래머스) 방문 길이-python (0) | 2023.01.26 |
프로그래머스) 할인행사-python (0) | 2023.01.26 |