728x90
반응형
문제
https://programmers.co.kr/learn/courses/30/lessons/12977
해설
이 문제는 주어진 숫자 중 3개의 수를 더해서 소수가 되는 경우의 개수를 구하는 문제이다.
그럼 소수인지를 구하는 함수를 따로 만들어두면 코드를 보기 좀 더 편할 것이다.
isPrime 함수에서 해당 수가 2 ~ num까지 나누기를 했을 때
나누어지는 수가 있는지 찾아 소수인지 아닌지 판단한다.
밑의 solution 에선 combinations 함수를 통해
설정한 개수인 3개의 수로 중복을 허용하지 않고 조합을 만든다.
이를 통해 생성한 리스트에서 세 수의 합을 구하고
그 합을 isPrime을 통해 소수인지 아닌지 판단한다.
소수인 True 값이 반환됐다면 answer 개수를 +1 해주면 된다.
코드
-파이썬
from itertools import combinations
#소수인지 판단
def isPrime(num):
for i in range(2, num):
if num % i == 0:
return False
return True
def solution(nums):
answer = 0
arr = list(combinations(nums, 3))
for i in arr:
sum = i[0] + i[1] + i[2]
if isPrime(sum):
answer += 1
return answer
728x90
반응형
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[파이썬] 프로그래머스_최소직사각형 (0) | 2022.02.23 |
---|---|
[파이썬] 프로그래머스_예산 (0) | 2022.02.16 |
[파이썬] 프로그래머스_완주하지 못한 선수(해시) (0) | 2022.02.10 |
[파이썬] 프로그래머스_음양 더하기 (0) | 2022.02.08 |
[파이썬] 프로그래머스_타겟 넘버(DFS/BFS) (0) | 2022.01.28 |