본문 바로가기
Problem Solving/프로그래머스

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

by ggyongi 2021. 4. 26.
반응형

programmers.co.kr/learn/courses/30/lessons/12977

 

코딩테스트 연습 - 소수 만들기

주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때

programmers.co.kr

import itertools
def solution(nums):

    def isPrime(num:int):
        for i in range(2, num):
            if num % i ==0:
                return False
        return True
    
    answer = 0  
    lst = itertools.combinations(nums,3)
    for case in lst:
        num = sum(case)
        if isPrime(num):
            answer +=1
    return answer

생각해보니 소수인지 판별하는 함수에서 굳이 i의 범위를 2부터 num 직전까지 주지 않아도 됐다. 

import itertools
def solution(nums):
    def isPrime(num:int):
        for i in range(2, (num//2)+1):
            if num % i ==0:
                return False
        return True
    
    answer = 0
    lst = itertools.combinations(nums,3)
    for case in lst:
        num = sum(case)
        if isPrime(num):
            answer +=1
    return answer

성능도 약간 상승하였음을 보였다.

 

비전공자 네카라 신입 취업 노하우

시행착오 끝에 얻어낸 취업 노하우가 모두 담긴 전자책!

kmong.com

댓글