728x90
https://programmers.co.kr/learn/courses/30/lessons/12977
코딩테스트 연습 - 소수 만들기
주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때
programmers.co.kr
문제 설명
주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 소수가 되는 경우의 개수를 return 하도록 solution 함수를 완성해주세요.
제출 코드
import itertools
def solution(nums):
answer = 0
com=list(itertools.combinations(nums,3))
for ele in com:
num=sum(ele)
check=0
for i in range(2,num):
if num%i==0:
check=1
break
if check==0:
answer+=1
return answer
결과
설명
제한사항의 nums의 각 원소는 1 이상 1,000 이하의 자연수이며, 중복된 숫자가 들어있지 않습니다. 라는 조건을 보고 조합이 떠올랐다.
각 경우의 수 별로 그 숫자가 소수인지 아닌지만 판단하면 될 일!
이번 기회에 itertools 라이브러리의 소중함을 깨닫는다..
728x90
반응형
'알고리즘' 카테고리의 다른 글
이코테 Chapter03. 그리디 (0) | 2022.09.01 |
---|---|
[BOJ/Python3(파이썬)] 백준 16967번 : 배열 복원하기 (0) | 2022.05.16 |
[BOJ/Python3(파이썬)] 백준 5598번 : 카이사르 암호 (0) | 2022.05.14 |
[BOJ/Python3(파이썬)] 백준 14499번: 주사위 굴리기 (0) | 2022.05.13 |
[BOJ/Python3(파이썬)] 백준 16935번: 배열 돌리기 3 (0) | 2022.05.12 |