https://programmers.co.kr/learn/courses/30/lessons/42839
한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다.
각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 조각으로 만들 수 있는 소수가 몇 개인지 return 하도록 solution 함수를 완성해주세요.
제한사항
입출력 예
- permutations 함수를 사용해 모든 경우의 수를 구한다.
- 중복을 제거한다. (set)
- 소수를 확인한다.
join() 함수
a = ['a','b','c']
text = ''.join(a)
text2 = ','.join(a)
print(text)
print(text2)
#출력
abcd
a,b,c,d
map() 함수
a = [1.2, 2.2]
text = list(map(int, a))
print(text)
#출력
[1,2]
from itertools import permutations
def test(num):
if num < 2:
return False
for k in range(2,num):
if num % k == 0:
return False
return True
def solution(numbers):
answer = []
for i in range(1,len(numbers)+1):
per = list(map(''.join,permutations(numbers,i)))
for j in list(set(per)):
if test(int(j)):
answer.append(int(j))
return len(set(answer))
해결점
1. join()을 사용해 [('7','1'), ('1','7')]로 나뉘어진 문자열을 ['71','17']로 만들었다.
2. 중복제거