CS/Algorithm 문제

[Programmers] 소수 찾기

[Programmers] 소수 찾기

 

🎈문제

https://programmers.co.kr/learn/courses/30/lessons/42839

💬설명

  • 어려운 문제는 아니었지만 알고리즘 문제에서 자주 나오는 소수찾는 로직을 구현해볼 수 있는 문제였다.
  • 과정: 만들 수 있는 모든 순열을 구해서 각각의 숫자가 소수인지 판별

👩‍💻코드

import math
from itertools import permutations


def is_prime(number):
    if number == 0 or number == 1:
        return False

    for i in range(2, int(math.sqrt(number)) + 1):
        if number % i == 0:
            return False
    return True


def solution(numbers):
    answer = 0
    numbers = list(numbers)
    arr = []
    
    for i in range(len(numbers)):
        arr += list(permutations(numbers, i + 1))

    per = []
    for num in arr:
        per.append(int(''.join(list(num))))
    per = list(set(per))
    
    for num in per:
        if is_prime(num):
            answer += 1
    
    return answer
728x90
반응형

'CS > Algorithm 문제' 카테고리의 다른 글

[BaekJoon] 백준 17779번 게리맨더링 2  (0) 2021.10.14
[Programmers] 카펫  (0) 2021.10.14
[Programmers] 모의고사  (0) 2021.10.14
[BaekJoon] 백준 21608번 상어 초등학교  (0) 2021.10.14
[Programmers] 가장 큰 수  (0) 2021.10.13