[프로그래머스 Lv1] 소수 만들기 (파이썬)

Jewon Joel Park·2022년 5월 27일
0

Programmers-solution

목록 보기
1/34

문제 링크


문제 설명

입력받는 정수 배열에서 서로 다른 3개의 수를 골라 소수가 되는 수를 반환하는 함수 작성


풀이 코드

from itertools import combinations


def is_prime(n):
    if n < 2:
        return False
    for i in range(2, int(n ** 0.5) + 1):
        if n % i == 0:
            return False
    return True


def solution(nums):
    num_primes = 0
    for i in combinations(nums, 3):
        if is_prime(sum(i)):
            num_primes += 1
    return num_primes

코드 설명

  1. 소수 판별 함수 is_prime()

    • 입력받은 값이 2보다 작을 경우(1일 경우) False 반환
    • (에라토스테네스의 체) 2부터 n의 제곱근까지 모든 수를 확인하며 n이 해당 수로 나눠질 경우 False 반환
  2. iterator 객체를 반환해주는 combinations()

    • 입력 iterable(리스트 등)에서 특정 길이의 서브시퀀스를반환
    • 추려진 리스트의 내부 값들의 합(sum(List))이 상기 is_prime()으로 소수인지 여부를 판별, 소수일 경우 num_primes가 1씩 증가
profile
10년을 돌고 돌아 마침내 제자리를 찾은 문과 출신 Python 개발자의 인생기록장

0개의 댓글