문제) 소수 만들기
코딩테스트 연습 - 소수 만들기
주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때
programmers.co.kr
- 내 풀이
- 조합 이용
- combinations(리스트, n) : 리스트에서 n개씩 값 추출하여 튜플 생성
- 순열 permutations(리스트, n)
from itertools import combinations
def solution(nums):
result=1
count=0
com=list(combinations(nums, 3)) #조합: 리스트에서 n개씩 추출
n_sum=[sum(a) for a in com]
for n in n_sum:
for i in range(2,n):
if n%i==0:
result+=1
if result==1:
count+=1
result=1
return count
- 다른 사람 풀이
- for-else
- for문과 같은 줄에 else를 쓸 경우
- break로 빠져나가지 않으면 for문 반복 끝난 뒤에 else문 실행
- as 이용하여 함수 표현 간단하게 바꿀 수 있음
- for-else
def solution(nums):
from itertools import combinations as cb
count=0
for a in cb(nums,3):
n_sum=sum(a)
for i in range(2,n_sum):
if n_sum%i==0:
break
else:
count+=1
return count'코딩테스트 > 프로그래머스' 카테고리의 다른 글
| [프로그래머스] [Level 1] 음양더하기 (0) | 2022.03.23 |
|---|---|
| [프로그래머스] [Level 1] 내적 (0) | 2022.03.23 |
| [프로그래머스] [Level 1] [완전탐색] 모의고사 (0) | 2022.03.21 |
| [프로그래머스] [Level 1] [탐욕법(Greedy)] 체육복 (0) | 2022.03.21 |
| [프로그래머스] [Level 1] 폰켓몬 (0) | 2022.03.20 |