AI 그게 뭔데
끄적끄적 개발일지
AI 그게 뭔데
전체 방문자
오늘
어제
  • 분류 전체보기 (342)
    • 논문 (5)
    • DL(Deep-Learning) (34)
      • 개념 (14)
      • Python 기초 (14)
      • Tensorflow (6)
      • Pytorch (0)
    • NLP (10)
    • OpenCV (53)
    • DevOps (10)
      • AWS (2)
      • Docker & Kubernetes (4)
      • Spark (3)
      • SQL (1)
    • MacOS (1)
    • React-Native (2)
    • BI (3)
      • GA(Google Analytics) (3)
      • Tableau (0)
    • 알고리즘 (221)
      • 백준 (76)
      • 프로그래머스 (108)
      • 기타 알고리즘 (37)

인기 글

태그

  • 알고리즘
  • 연습문제
  • 파이썬
  • 백준
  • 이코테
  • 프로그래머스
  • OpenCV
  • LEVEL2
  • Python
  • level1

최근 글

hELLO · Designed By 정상우.
AI 그게 뭔데

끄적끄적 개발일지

알고리즘/프로그래머스

[프로그래머스] 소수 만들기 - Level 1

2022. 1. 23. 16:44
 

코딩테스트 연습 - 소수 만들기

주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다. 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때

programmers.co.kr

 

문제 설명

주어진 숫자 중 3개의 수를 더했을 때 소수가 되는 경우의 개수를 구하려고 합니다.

숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 소수가 되는 경우의 개수를 return 하도록 solution 함수를 완성해주세요.

 

 

제한사항

  • nums에 들어있는 숫자의 개수는 3개 이상 50개 이하입니다.
  • nums의 각 원소는 1 이상 1,000 이하의 자연수이며, 중복된 숫자가 들어있지 않습니다.

 

입출력 예

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

 

 

입출력 예 설명

입출력 예 #1

[1,2,4]를 이용해서 7을 만들 수 있습니다.

 

입출력 예 #2

[1,2,4]를 이용해서 7을 만들 수 있습니다.
[1,4,6]을 이용해서 11을 만들 수 있습니다.
[2,4,7]을 이용해서 13을 만들 수 있습니다.
[4,6,7]을 이용해서 17을 만들 수 있습니다.

 

 


✔ Solution

from itertools import combinations

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


def list_sum(arr, n):    
    sum_list = []
    
    for i in combinations(arr,n):
        sum_list.append(sum(i))

    return sum_list


def solution(nums):
    sum_list = list_sum(nums)
    cnt = 0
    
    for i in sum_list:
        if Prime(i) == True:
            cnt += 1
    return cnt

 

 

✔ Solution 2

from itertools import combinations
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

def solution(nums):
    return sum([prime_number(sum(c)) for c in combinations(nums,3)])

 

 

✔ Solution 3

def solution(nums):
    from itertools import combinations
    answer = 0
    
    for i in combinations(nums, 3):
        sum_list = sum(i)
        for k in range(2, sum_list):
            if sum_list % k == 0:
                break
        else:
            answer += 1
    return answer

'알고리즘 > 프로그래머스' 카테고리의 다른 글

[스택/큐] 기능개발 - Level 2  (0) 2022.02.06
[프로그래머스] 폰켓몬 - Level 1  (0) 2022.01.23
[2021 KAKAO BLIND] 신규 아이디 추천 - Level 1  (0) 2022.01.22
[2019 KAKAO BLIND] 실패율 - level 1  (0) 2022.01.22
[프로그래머스] 2016년 - Level 1  (0) 2022.01.22
    AI 그게 뭔데
    AI 그게 뭔데
    공부와 개발 그리고 AI가 약간 첨가된 흔적 남기기

    티스토리툴바