알고리즘 풀이
[알고리즘] 프로그래머스 | 소수 만들기
째깍단
2023. 8. 15. 14:15
소수만들기
답:
더보기
식 하나로 만들기
from itertools import combinations
def solution(nums):
result = 0
n_list = list((combinations(nums, 3)))
for number in n_list:
num = sum(number)
new_num = int(num ** 0.5) + 1
for i in range(2, new_num):
if num % i == 0:
break
else:
result += 1
return result
함수로 나누기
from itertools import combinations
def is_prime(n):
new_num = int(n**0.5+1)
for i in range(2, new_num):
if n % i == 0:
return False
return True
def solution(nums):
answer = 0
n_list = list(combinations(nums,3))
for num in n_list:
if is_prime(sum(num)):
answer += 1
return answer
문제 분석 및 해석
주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 수 구하기
nums = [숫자가 들어있는 배열]
결과 = 소수나오는 숫자
>> 풀이생각
itertools에 combinations를 사용해 3개를 묶은 경우의 수를 만들고
해당 combinations객체를 합한 후에 소수인지 검사한다
: 소수를 검사하는 방법 - 2 ~ 제곱근까지의 수로 나누어보기
한 식에 모아서 쓰는 방법은 없을까 생각,
for else문의 조건문을 사용하였다.
리뷰.
for else의 사용방법을 알아볼 수 있었다
if 조건에따라 break를 하고
break를 할 경우 else가 실행되지 않고,
break를 하지 않으면 else가 실행되는 것에 대해 이해하게 되었다.