코딩테스트

구현17.프로그래머스 소수만들기 파이썬

Giant Oreo 2021. 5. 6. 14:50

 

def solution(nums):
	arr = []
    for i in range(len(nums)-2):
    	for j in range(i+1, len(nums)-1):
        	for k in range(j+1, len(nums)):
            	arr.append(nums[i]+nums[j]+nums[k])
                
	cnt = 0
	for i in arr:
    	if issosu(i):
        	cnt += 1
    return cnt
    
def issosu(num):
	for i in range(2, num):
    	if num % i == 0:
        	return False
    return True

            

 

 

++다른 사람 코드 참고한 풀이 방법

 

combinations함수 이용하기 & for else(for 반복문에서 break로 빠지지 않은 경우에 처리할 내용) 

combinations함수는 순서의 의미가 있고, 중복없는 조합을 리스트로 만들어주는 함수이다.

 

from itertools import combinations as cb

def solution(nums):	
    answer = 0
    
    for i in list(cb(nums, 3)):
    	n = sum(i)
        for j in range(2,n//2+1):
        	if n % j == 0:
            	break
        else:
        	answer += 1
   return answer