소수 찾기
개요
- 이번 포스팅은 파이썬 코딩테스트 연습문제 풀이입니다.
Programmers
에 공개된 예제이며 링크는 아래와 같습니다.
코드
def combination(data, n):
temp = []
if n <= 1:
return data
for m in data:
for i in combination(data.replace(m,'',1), n-1):
a = m + i
temp.append(a)
return set(temp)
def solution(numbers):
answer = 0
dic = {}
for i in range(1, len(numbers)+1):
if i == 1:
dic[i] = set(' '.join(numbers).split())
else:
dic[i] = combination(numbers, i)
for key, values in dic.items():
for value in values:
if value[0] == '0':
continue
value = int(value)
if value == 1 or value == 0:
continue
if value == 2:
answer += 1
continue
prime = True
for n in range(2, value):
if value % n == 0:
prime = False
break
if prime == True:
answer += 1
return answer
마치며
이번 포스팅은 Programmers
에 존재하는 파이썬 코딩테스트 완전탐색 예제 중 레벨 2에 해당하는 문제입니다.