https://programmers.co.kr/learn/courses/30/lessons/12977
코딩테스트 연습 - 소수 만들기
주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때
programmers.co.kr
import math
from itertools import combinations as comb
def solution(nums):
sum_list = [sum(i) for i in list(comb(nums,3))]
answer = 0
for x in sum_list:
isOK = True
for i in range(2, int(math.sqrt(x))+1):
if x % i == 0:
isOK = False
break
if isOK:
answer += 1
return answer
풀이
1. 순서가 상관이 없으니 combinations를 이용해서 세 숫자들의 합 리스트를 만든다.
2. 리스트를 전부 돌면서 (2~자기 자신의 제곱근+1)로 나누어 떨어지면 소수가 아니다.
3. isOK가 그대로 True일 경우에만 answer += 1
3. return answer
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스] Lv1 - 약수의 개수와 덧셈 (파이썬) (0) | 2022.03.18 |
---|---|
[프로그래머스] Lv1 - 포켓몬 (파이썬) (0) | 2022.03.18 |
[프로그래머스] Lv1 - 음양 더하기 (파이썬) (0) | 2022.03.16 |
[프로그래머스] Lv1 - 없는 숫자 더하기 (파이썬) (0) | 2022.03.16 |
[프로그래머스] Lv1 - 크레인 인형뽑기 게임 (파이썬) (0) | 2022.03.16 |