문제 설명
한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다.
각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 조각으로 만들 수 있는 소수가 몇 개인지 return 하도록 solution 함수를 완성해주세요.
나의 풀이
from itertools import permutations
def isprime(n):
divisor = 0
for i in range(2, int(n ** 0.5) + 1):
if n % i == 0:
divisor += 1
return 1 if divisor == 0 else 0
def solution(numbers):
numbers = list(numbers)
permute = []
# 모든 순열을 만들어보기
for i in range(1, len(numbers) + 1):
for j in permutations(numbers, i):
num = int("".join(j))
if (num not in permute) and (num >= 2):
permute.append(int("".join(j)))
return sum([isprime(k) for k in permute])
문제 출처 : https://programmers.co.kr/learn/courses/30/lessons/42839
'Algorithm > Daily Coding Tests Challenge' 카테고리의 다른 글
[프로그래머스] level2. 타겟 넘버 (0) | 2021.09.08 |
---|---|
[Baekjoon] 그리디 알고리즘 : ATM (0) | 2021.09.07 |
[프로그래머스] level2. 구명보트 (0) | 2021.09.06 |
[Leetcode] Easy : Search Insert Position (0) | 2021.09.05 |
[프로그래머스] level2. JadenCase 문자열 만들기 (0) | 2021.09.05 |