[Programmers] 소수 찾기 파이썬 풀이

Updated:

문제

프로그래머스 소수 찾기 문제 링크

구현

from itertools import permutations

def solution(numbers):
    answer = []
    nums = [n for n in numbers]
    per = []
    for i in range(1, len(numbers) + 1):
        per += list(permutations(nums, i))
    new_nums = [int("".join(p)) for p in per]
    
    for i in new_nums:
        check = False
        if i < 2:
            continue
        for j in range(2, int(i**0.5) + 1):
            if i % j == 0:
                check = True
                break
        if not check:
            answer.append(i)
            
    return len(set(answer))
            
    
    return answer

오답노트

문자열 numbers를 [n for n in numbers]로 각 숫자를 떼어내준다. “17” -> [“1”, “7”]

떼어낸 문자들을 permutations$($) 를 사용하여 순열 조합을 구하는 것이 관건이었던 문제였다.

마지막으로 set을 이용해서 중복되는 숫자를 제거 후 반환해야 한다.

Leave a comment