풀이
해당 문제의 입출력이 매우 작아 (numbers는 길이 1 이상 7 이하인 문자열) 브루트포스로 풀 수 있다! permutations와 파이썬 join함수를 이용하여 가능한 모든 숫자 배열을 만들어낼 수 있었다. permutation은 1,2,3이 있다면 12, 21 이렇게 순서가 바뀐 경우도 모두 가져올 수 있다.
코드
from itertools import permutations as pm
N=10000000
primes=[True for _ in range(N)]
primes[0]=False
primes[1]=False
for i in range(2,N):
if primes[i]: #2같은 소수를 만나면
for j in range(i+i,N,i):
primes[j]=False #
def solution(numbers):
Num_List=list(numbers)
ans_set=[]
for j in range(1,len(numbers)+1):
s=''
for i in list(pm(Num_List,j)):
s=''.join(i)
s=int(s)
# print(s)
if primes[s]:
ans_set+=[str(s)]
ans_set=set(ans_set)
print(ans_set)
answer = len(ans_set)
return answer
'Koala - 12기 > 코딩테스트 준비 스터디' 카테고리의 다른 글
[백준/phthon3] 15657: N과 M(8) (0) | 2023.09.11 |
---|---|
[백준/Python] 15686번 : 치킨 배달 (0) | 2023.09.10 |
[프로그래머스/Java] 타겟 넘버 (0) | 2023.09.10 |
[백준/C++] 1436 영화감독 숌 (0) | 2023.09.10 |
[백준/C++] 18111번: 마인크래프트 (0) | 2023.09.10 |