Skip to content

[PGS] 소수 만들기 - #78

Open
been12151 wants to merge 15 commits into
mainfrom
week4/make-prime
Open

[PGS] 소수 만들기#78
been12151 wants to merge 15 commits into
mainfrom
week4/make-prime

Conversation

@been12151

Copy link
Copy Markdown
Owner

🍪 문제 이름

Resolve: 소수 만들기

🍊 문제 정의

input

  • nums : 정수가 담긴 배열 (3 ≤ 길이 ≤ 50, 각 원소 1 이상 1,000 이하)

output

  • nums에서 3개의 수를 뽑아 더했을 때 소수가 되는 경우의 수

예시

nums result
[1, 2, 3, 4] 1
[1, 2, 7, 6, 4] 4

🍑 알고리즘 설계

combinations로 3개씩 뽑는 모든 조합을 생성하고, 각 조합의 합이 소수인지 판별하는 is_prime()을 내부 함수로 정의해 체크.
is_prime()은 2부터 √n까지만 나눠보는 방식으로 불필요한 반복을 줄임. 소수인 경우 answer를 1 증가.

from itertools import combinations

def solution(nums):
    answer = 0

    def is_prime(n):
        if n < 2:
            return False
        for i in range(2, int(n ** 0.5) + 1):
            if n % i == 0:
                return False
        return True

    for combo in combinations(nums, 3):
        if is_prime(sum(combo)):
            answer += 1

    return answer

🥝 최악 수행 시간 복잡도

  • O(n³ × √m) (n = nums 길이, m = 세 수의 합 최댓값)
  • 조합의 수는 nC3 = O(n³), 각 조합마다 소수 판별에 O(√m)이 걸리므로 전체 O(n³ × √m)

🍰 특이 사항 (Optional)

is_prime()을 2부터 √n까지만 확인하는 방식으로 구현해 완전탐색(2 ~ n-1)보다 효율적으로 처리함.

@been12151
been12151 requested review from gayo73 and yangyeeeun July 13, 2026 12:58
@been12151 been12151 self-assigned this Jul 13, 2026
@been12151 been12151 linked an issue Jul 14, 2026 that may be closed by this pull request
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[PGS] 소수 만들기 / level 1

2 participants