[프로그래머스]소수 만들기

iamjinseo·2022년 8월 16일
0

문제풀이-Python

목록 보기
45/134

https://school.programmers.co.kr/learn/courses/30/lessons/12977

문제

해설

  1. 입력으로 받은 리스트에서 3개의 모든 조합을 선정함(5C3)
    : from itertools import combinations
    list(combinations(nums, n))

출처 : https://ourcstory.tistory.com/414
2. 3개의 수의 합이 소수인지 판별

코드

# 하나의 리스트에서 모든 조합을 계산을 해야 한다면, permutations(순열), combinations(조합)을 사용
# 두개 이상의 리스트에서 모든 조합을 계산해야 한다면, product를 사용
from itertools import combinations
def solution(nums):
    answer = 0
    ns = list(combinations(nums, 3)) #5C3(세개의 숫자 고르기)
    for n in ns:
        if isPrime(sum(n)):  #소수판별
            answer+=1
    return answer

def isPrime(n): #소수 판별
    for i in range(2, n):
        if n%i==0: 
            return False
    return True

고난

조합 라이브러리 뭔지 몰라서 구글링함.
소수 알고리즘도 구글링 함. 잊고있던 에라토스테네스의 체를 떠올림.

보너스: 순열은 permutations이고 두개 이상의 리스트의 모든 조합은 product.

profile
일단 뭐라도 해보는 중

0개의 댓글