[프로그래머스] - 소수 만들기(Python)

문제📝


풀이💡

  • 문제에 필요한 itertoolsmath 라이브러리를 사용한다.
  • nums에서 3개로 이루어진 조합을 찾는다.
  • sum_list에 각 조합을 더한 값들을 넣어준다.
  • isprime()이라는 소수를 판단하는 함수를 만들고 sum_list에서 isprime()을 적용해서 소수에 해당하면 answer에 1을 더한다.

코드💻

# 프로그래머스 Lv1 - 소수 만들기
# 문제링크: https://programmers.co.kr/learn/courses/30/lessons/12977

import itertools # 콤비네이션을 위한 라이브러리
import math # sqrt를 위한 라이브러리

def solution(nums):
    answer = 0
    sum_list=[]
    cnt = itertools.combinations(nums,3) 
    
    for i in cnt: 
       sum_list.append(sum(i))
     
    for j in sum_list: 
        if isprime(j):
            answer +=1
            
    return answer

def isprime(a):
    for k in range(2,int(math.sqrt(a)+1)): # 2부터 a의 제곱근까지
        if a%k == 0: 
            return False
    return True
     # 지정한 숫자가 k로 나누었을 때 0으로 떨어지지 않으면 소수

결과😎


느낀점👨‍💻

코딩을 하면서 조합을 사용하는 문제는 처음 풀어서 조합을 사용하기 위한 라이브러리인 itertools도 알게 되었고 한층 더 문제를 파악하는 능력을 길러주게 하는 문제였다.


Sinbmil의 알고리즘 문제 코드

-> https://github.com/Sinbmil/Algorithm-Study

좋은 웹페이지 즐겨찾기