본문 바로가기
Programming/Python

[프로그래머스] 소수 찾기

by 왕밤빵도라에몽 2025. 4. 7.
728x90

기본 아이디어

  • 조합?은 아니고 순열
  • 순열/조합 라이브러리 써야지
  • 맨 처음 숫자가 0인 케이스 주의해야지
from itertools import permutations

def check_prime(n):
    if n < 2:
        return False
    for i in range(2, n):
        if n % i == 0:
            return False
    return True

def solution(numbers):
    nums = set()
    n_list = list(numbers)

    for i in range(1, len(n_list)+1):
        for p in permutations(n_list, i):
            n = int(''.join(list(p)))
            if check_prime(n):
                nums.add(n)
    return len(nums)
  • 소수: 1과 자기 자신만을 약수로 가지는 1보다 큰 자연수
  • 소수판별 함수를 따로 두는 것이 좋다
  • n = int(''.join(list(p))) 리스트형태의 숫자들을 하나의 값으로 합쳐내기 위해 이렇게 했다.
728x90

'Programming > Python' 카테고리의 다른 글

[프로그래머스] 기능개발  (0) 2025.04.08
[프로그래머스] 조이스틱  (0) 2025.04.08
[백준] 2606 | 바이러스  (0) 2025.04.07
[프로그래머스] 게임 맵 최단거리  (0) 2025.04.07
[프로그래머스] 더 맵게  (0) 2025.04.02