배고픈 개발자 이야기
[Summer/Winter Coding] 소수 구하기 본문
728x90
이 문제는 주어진 숫자열 중 3가지 숫자의 합을, 그 숫자가 소수(prime number)인지 판별하는 문제로 2가지 로직만 완성하면 된다.
1. 3가지 숫자를 뽑는 경우의 수를 구현하는것
경우의 수는 아래의 링크를 참조하여 순서는 상관없을 때 중복을 허용하지 않는 경우의 수를 구했다.
2. prime number를 효과적으로 판별하는 방법
1. 2부터 순차적으로 전체 숫자를 구하는 방법
2. 2부터 중간값까지 구하는 방법
3. 2부터 최대공약수 root(prime number)까지 구하는 방법
중 3번으로 풀었다.
from itertools import combinations
def isPrime(comb):
max_num = int(comb**(1/2)) + 1
for divide in range(2, max_num):
if comb % divide == 0:
return False
return True
def solution(nums):
answer = 0
for comb in list(combinations(nums, 3)):
answer += isPrime(sum(comb))
return answer
'알고리즘 문제 > PROGRAMMERS' 카테고리의 다른 글
[2018 kakao blind] 비밀지도 (0) | 2021.08.01 |
---|---|
[2019 kakao blind] 실패율 (0) | 2021.07.31 |
[카카오 인턴] 키패드 누르기 (0) | 2021.07.31 |
[2019 카카오 인턴십] 징검다리 건너기 (feat. PYTHON) (0) | 2020.05.08 |
[2019 카카오 인턴십] 호텔 방 배정 (feat. PYTHON) (0) | 2020.05.08 |
Comments