나의 풀이
def isPrime(x):
if x ==1: return False
for i in range(2, x): #만약에 x가 2라면 for i in range(2,2)가 된다. 그냥 지나감
if x % i ==0:
return False
else: #else는 for문을 정상적으로 다 돌은 경우를 의미한다.
return True
def solution(nums):
l = len(nums)
cnt=0
for i in range(l-2):
for j in range(i+1, l-1):
for k in range(j+1, l):
sum=nums[i]+nums[j]+nums[k]
if isPrime(sum) == True:
cnt=cnt+1
return cnt
다른 사람의 풀이
from itertools import combinations
def prime_number(x):
answer = 0
for i in range(1,int(x**0.5)+1):
if x%i==0:
answer+=1
return 1 if answer==1 else 0
def solution(nums):
return sum([prime_number(sum(c)) for c in combinations(nums,3)])
▶ 소수 판정법 : 주어진 자연수 n에 대해서 1보다 크고 루트 n 이하인 모든 자연수들로 나누어떨어지지 않으면 소수
'프로그래머스(파이썬) > LV.1(파이썬)' 카테고리의 다른 글
콜라 문제→ 치킨 쿠폰과 매우 유사★★ (0) | 2022.12.18 |
---|---|
실패율★→collections의 Counter() 함수 vs count() 함수 + 정렬: 첫 번째 요소 내림차순, 두 번째 요소도 내림차순... (0) | 2022.12.18 |
모의고사 → 순환 %★ + for x, y in enumerate(answers)★ (0) | 2022.12.17 |
삼총사→ 조합 + 삼중 for문 (0) | 2022.12.17 |
숫자 문자열과 영단어(카카오) →replace(), for문을 이용한 dictionary()★ (0) | 2022.12.17 |