소수에 관련된 문제는 그래도 좀 많이 풀어본 터라 간단하게 풀 수 있었다.
from itertools import combinations
def is_prime(n):
if n <= 1:
return False
else:
for i in range(2, int(n**(1/2))+1):
if n%i == 0:
return False
else:
return True
def solution(nums):
result = 0
for i in combinations(nums, 3):
if is_prime(sum(i)):
result += 1
return result
다른 방법도 있겠지만, 간단하게 다른 라이브러리를 이용하여 combinations
를 사용하여 빠르고 간결하게 풀 수 있었다.
'알고리즘 테스트 > 프로그래머스 문제풀이 및 해설' 카테고리의 다른 글
<프로그래머스 문제풀이: [연습문제] 최댓값과 최솟값> Level 2 - 파이썬 (0) | 2020.12.18 |
---|---|
<프로그래머스 문제풀이: [연습문제] N개의 최소공배수> Level 2 - 파이썬 (0) | 2020.12.18 |
<프로그래머스 문제풀이: [연습문제] 최솟값 만들기> Level 2 - 파이썬 (0) | 2020.12.16 |
<프로그래머스 문제풀이: 올바른 괄호> Level 2 - 파이썬 (0) | 2020.12.14 |
<프로그래머스 문제풀이: [해시] 전화번호 목록> Level 2 - 파이썬 (0) | 2020.12.13 |