소수 만들기 - Python
2023. 12. 9. 01:58ㆍ공부/📝 프로그래머스
1. 풀이 코드
import math
def solution(nums):
answer = math.comb(len(nums), 3)
for i in range(len(nums)):
for j in range(i + 1, len(nums), 1):
for k in range(j + 1, len(nums), 1):
temp = nums[i] + nums[j] + nums[k]
for l in range(2, (temp + 1) // 2, 1):
if temp % l == 0:
answer -= 1
break
return answer
처음부터 answer에 모든 경우의 수를 계산하여 넣었습니다. 그 후 소수가 아닌 경우에 대해서 answer에 -1을 더해주는 방식으로 문제를 풀었습니다.
2. 다른 사람 풀이 코드
def solution(nums):
from itertools import combinations as cb
answer = 0
for a in cb(nums, 3):
cand = sum(a)
for j in range(2, cand):
if cand%j==0:
break
else:
answer += 1
return answer
itertools에 있는 combinations는 모든 조합의 결과를 리스트로 반환하더군요. 처음 보는 듯합니다. 그 외에도 for if else의 사용법이 신기하네요.
for 변수 in 순회가능한_객체:
# 반복 동작
if 조건:
break
else:
# 반복이 정상적으로 완료될 때 실행되는 코드
while 조건:
# 반복 동작
if 조건:
break
else:
# 반복이 정상적으로 완료될 때 실행되는 코드
위의 두 가지 사용 예시와 같이 쓸 수 있는 for if else 구문은 유용하겠습니다.
'공부 > 📝 프로그래머스' 카테고리의 다른 글
[PCCE 기출문제] 1번 / 출력 - Python (0) | 2023.12.10 |
---|---|
소수 찾기 - Python (0) | 2023.12.10 |
모의고사 - Python (0) | 2023.12.08 |
과일 장수 - Python (0) | 2023.12.07 |
폰켓몬 - Python (0) | 2023.12.06 |