[프로그래머스] Lv1 소수만들기

do yeon kim·2022년 9월 29일
0
회고

combinations메서드를 이용해서 3가지 요소를 포함하되 반복이 허용되지 않는 조합을 만들었다.

파이썬은 다양한 라이브러리가 존재하기 때문에 아는 만큼 사용할 수 있다.
이전에 combinations을 모를 당시는 이러한 조합을 만들기 위해서 직접 코딩을 해야만 했다면, 이제는 간단히 라이브러리를 이용해서 코드를 구현할 수 있다는 점에서 너무 좋은 라이브러리를 많이 제공한다는 생각이 든다.

하지만 한편으로는 이렇게 다양한 라이브러리를 쓰면, 직접 로직을 구현 해 볼 때와는 달리 생각을 많이 하지 않는다는 점에서 괜찮은가? 라는 생각이 든다.

파이썬이외의 다른 언어를 사용하게 된다면, 다른 언어에서 제공하는 라이브러리가 있을 수도 있으나, 그러지 않은 경우라면, 직접 로직을 구현해야 할 것이다.

사용할 수 있는 라이브러리는 사용하면 좋을 것이다. 하지만 어떻게 이런 기능을 제공할 수 있는지 로직적으로 생각을 해 본다면, 더 효과적으로 라이브러리를 사용하는 것이 아닌가 라는 생각이 든다.

풀이

https://school.programmers.co.kr/learn/courses/30/lessons/12977

from itertools import combinations
def is_prim(i):
    for k in range(2, i):
        if i%k == 0:
            return False
    return True

def solution(nums):
    result = list(combinations(nums,3))
    cnt = 0
    for i in result:
        if is_prim(sum(i)):
            cnt += 1
    return cnt

nums = [1,2,3,4]
result = solution(nums)
print(result)



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

result = prime_number(11)
print(result)

0개의 댓글