[프로그래머스] 소수 만들기 Lv.1 - [파이썬/python]
https://school.programmers.co.kr/learn/courses/30/lessons/12977
문제 설명
주어진 숫자 중 3개의 수를 더해 소수가 되는 경우의 수를 반환(return)하면 되는 문제입니다.
주어진 숫자 중 서로 다른 3개의 수를 더한 모든 경우의 수를 구하는 방법과
소수를 구하는 방법만 알면 쉽습니다.
더보기
중첩된 반복문을 사용하면 가능한 모든 조합을 생성할 수 있습니다.
소수는 "1"과 "자기 자신의 수"로만 나누어져 나머지가 생기지 않으며,
"1"과 "자기 자신의 수"의 사이인 수로 나누면 나머지가 생깁니다. 이점을 활용하시면 좋습니다.
정답 주의!!!
def solution(nums):
make_nums = [] # 가능한 모든 조합의 합을 저장할 리스트
result = [] # 소수를 저장할 리스트
# 가능한 모든 조합의 합을 구합니다.
for i in range(len(nums)-2):
for j in range(i+1, len(nums)-1):
for k in range(j+1, len(nums)):
make_nums.append(nums[i] + nums[j] + nums[k])
# 가능한 조합의 합 중에서 소수인 것을 찾아서 result 리스트에 추가합니다.
for i in make_nums:
# i가 소수인지 검사합니다.
# all은 모든 요소가 참이면 True를 반환, 하나라도 거짓이 있으면 False반환
# i가 2~(i-1)까지 나머지가 있는지 확인합니다. 나머지가 다 있으면 모든 요소가 True이므로 참
if all(i % j != 0 for j in range(2, i)):
result.append(i)
# 소수의 개수를 반환합니다.
return len(result)
728x90
'코딩테스트' 카테고리의 다른 글
[프로그래머스] 내적 - Lv.1 (41) | 2023.08.18 |
---|---|
[프로그래머스] 완주하지 못한 선수 - Lv.1 (0) | 2023.08.18 |
[프로그래머스] 신규 아이디 추천 - Lv.1 (19) | 2023.08.18 |
[프로그래머스] 햄버거 만들기 - Lv.1 (0) | 2023.08.18 |
[프로그래머스] 시저 암호 - Lv.1 (20) | 2023.08.17 |