알고리즘 with python/알고리즘 스터디
99클럽 코테 스터디 10일차 TIL 완전탐색 : 프로그래머스 LV.2 소수 찾기 with Python
정민됴
2024. 5. 29. 17:43
https://school.programmers.co.kr/learn/courses/30/lessons/42839
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제는 위쪽에서!
import itertools
def solution(numbers):
answer = 0
arr = set()
for i in range(1, len(numbers)+1):
# numbers에 있는 숫자로 만들 수 있는 조합
for a in itertools.permutations(numbers, i):
num = int(''.join(a))
# 1과 0은 소수 아님
if num != 1 and num != 0:
arr.add(num)
# 소수인지 아닌지 판별
for a in arr:
for i in range(2, int(a**(1/2))+1):
if a%i==0:
break
else :
answer += 1
return answer
숫자로 만들 수 있는 조합들을 소수인지 아닌지 판별하는 방법으로 풀었다.
또 다른 풀이 방법으로는 소수들을 먼저 다 구해놓은뒤 조합으로만들 수 있는지 없는지 확인해도 될 것 같다.