프로그래머스(Python) 풀이/Level.1
프로그래머스(Python) 12977번 소수 만들기 풀이
개발윗미
2022. 5. 9. 11:11
Python으로 구현한 12977번 소수 만들기 문제 풀이입니다.
https://programmers.co.kr/learn/courses/30/lessons/12977
코딩테스트 연습 - 소수 만들기
주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때
programmers.co.kr
from itertools import combinations
def check(value) :
flag = True
for i in range(2, value // 2 + 1) :
if value % i == 0 :
flag = False
break
return flag
def solution(nums):
answer = 0
for value in combinations(nums, 3) :
if check(sum(value)) : # True라면 소수
answer += 1
return answer
1. itertools.combinations() 모듈을 통해 nums에 존재하는 3개의 수를 추출하고 추출된 3개의 수의 합을 check() 함수에 전달하여 소수인지 판별한다.
2. check() 함수에서는 for문을 통해 value를 특정 수로 나누었을 때 나누어 떨어진다면 소수가 아니므로 False를 반환하고, value // 2 까지 모두 나누어떨어지지 않는다면 소수이므로 True를 반환한다.
3. check() 함수를 통해 전달받은 값이 True일 경우 answer을 1 증가시킨다.