Algorithm/Brute Force
(Python) - 프로그래머스 : 소수 찾기
하눤석
2022. 1. 19. 12:21
728x90
https://programmers.co.kr/learn/courses/30/lessons/42839
- 해설 :
숫자로 이루어진 문자열이 주어질 때, 각 자릿수들을 조합해서 만들 수 있는 모든 수들 중 소수만 찾아서 개수를 출력하면 된다.
- 풀이 :
numbers에 담겨있는 숫자의 각 자릿수들을 1부터 numbers의 길이만큼 개수만큼 조합한 모든 수들에 대해 isPrime함수를 통해 소수인지 판별한다. 소수일 경우 answer에 1을 추가해주었고 sum으로 총합을 계산하였다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
from itertools import permutations
l = []
def isprime(x):
if x in l:
return False
l.append(x)
if x == 1 or x == 0:
return False
for i in range(2, x):
if x % i == 0:
return False
return True
def solution(numbers):
answer = 0
for i in range(1,len(numbers)+1):
answer += sum(1 for a in permutations(numbers,i) if isprime(int(''.join(a))))
return answer
|
cs |
320x100