소수찾기(Level 2)
1. 문제
2. 나의 풀이
def solution(numbers):
nums = [n for n in numbers]
max_num = int('9'*len(numbers))
primes = set(range(2, max_num+1))
for i in range(2, max_num+1):
if i in primes:
primes -= set(range(i*i, max_num+1, i))
primes=list(primes)
count = 0
# rlt = []
for p in primes:
# temp = [str(x) for x in str(p)]
temp_nums = [x for x in numbers]
flag = 1
for x in str(p):
if x not in temp_nums:
flag = 0
break
else:
temp_nums.remove(x)
if flag:
count += 1
# rlt.append(''.join(temp))
# print(rlt)
return count
시간초과가 생겨서
소수판별하는 부분의 로직을 에라토스의 체를 적용하였다
3. 남의 풀이
4. 느낀 점
- permutation 모듈을 사용하면 간단하게 풀 수 있군!
Author And Source
이 문제에 관하여(소수찾기(Level 2)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@muchogusto/소수찾기Level-2저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)