[Programmers] 소수 찾기

suhyun·2022년 5월 3일
0

백준/프로그래머스

목록 보기
18/81

문제 링크

Level2. 소수 찾기

문제 설명

입력

  • 문자열 (numbers)

출력

  • 문자열로부터 만들 수 있는 소수의 갯수

문제 풀이

permutaions을 이용해서 입력받은 문자열로 만들 수 있는 모든 문자열을 생성
set 을 사용해서 중복 제거하고 새로운 리스트에 추가
int 로 형변환 해서 소수인지 확인하고 소수이면 리스트에 추가, 아니면 패스

from itertools import permutations

def is_prime(num):
    if num < 2:
        return False
    else:
        for i in range(2, num//2+1):
            if num % i == 0:
                return False
    return True

def solution(numbers):
    result = []
    answer = 0
    for i in range(1, len(numbers)+1):
        result.append(list(set(map(''.join, permutations(numbers, i)))))

    result = list(set(map(int, set(sum(result, [])))))
    for r in result:
        if is_prime(r):
            answer += 1

    return answer

-> permutations를 처음써봤는데 그 부분 빼면 딱히 어려움 없었던 문제

profile
꾸준히 하려고 노력하는 편 💻

0개의 댓글