Programmers/프로그래머스-소수 찾기-python

cosmos·2021년 7월 27일
0
post-thumbnail
post-custom-banner

문제📖

풀이🙏

  • 한자리 숫자가 적힌 종이 조각이 흩어져있다.
  • 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 한다.
  • 각 종이 조각에 적힌 숫자가 적힌 문자열 number가 주어졌을 때, 종이 조각으로 만들 수 있는 소수가 몇 개인지 return 하도록 solution함수를 완성하라.
  • numbers는 길이 1 이상 7 이하인 문자열이다.
  • numbers는 0~9까지 숫자만으로 이루어져 있다.
  • "013"은 0,1,3 숫자가 적힌 종이 조각이 흩어져있다는 의미이다.

코드💻

# programmers, phase2:소수 찾기, python3
# 완전 탐색 알고리즘
from itertools import permutations

def check_sosu(n):
    if n>1:
        for i in range(2,n):
            if n%i==0:
                return False
    else:
        return False
    return True


def solution(numbers):
    l = list(numbers)
    nums, nums_v2 = [], []
    target_num = ''
    
    for i in range(1, len(l)+1):
        nums += list(permutations(l,i))
        
    for x in nums:
        for y in x:
            target_num += y
        nums_v2.append(int(target_num))
        target_num = ''  
        
    nums_v2 = list(set(nums_v2))
    
    return sum([1 for x in nums_v2 if check_sosu(x) == True])

결과😎


출처 && 깃허브📝

programmers
github

post-custom-banner

0개의 댓글