유형 : 완전탐색

풀이 시간 : 10분

 

from itertools import permutations

def solution(numbers):
    answer = dict()
    numbers = list(numbers)
    for i in range(1, len(numbers)+1):
        for num in permutations(numbers, i):
            if check(int(''.join(num))):
                answer[int(''.join(num))] = 1
    return len(answer)

def check(num):
    if num == 0 or num == 1:
        return False
    for i in range(2, int(num ** 0.5) + 1):
        if num % i == 0 and num != i:
            return False
    return True

 

소수 찾는 함수 + 기본 permutation, dict를 사용해 해결하였다. 

전부 탐색해보는 방법으로 풀이 가능 

 

https://chocodingdiary.tistory.com/120

 

39. 소수 찾기 ★ (소수 판별 알고리즘)

유형 : 구현 (소수 판별)풀이 시간 : 15분 -> 인터넷 서치  소수 판별을 효율적으로 하려면, 에라스토테네스의 체 원리를 이용해야 한다.  1. 기본 : set, 에라스토테네스의 체 이용하기 def solution(

chocodingdiary.tistory.com

https://chocodingdiary.tistory.com/119

 

38. 소수 만들기 (소수 판별 알고리즘)

유형 : 구현풀이 시간 : 20분 def solution(nums): answer = -1 from itertools import combinations sumnum = [] for number in combinations(nums, 3): cnt = sum(number) sumnum.append(cnt) sumnum.sort(reverse = True) answer = 0 for i in range(len(sumnum)

chocodingdiary.tistory.com

 

'프로그래머스 > Lv. 2' 카테고리의 다른 글

15. 타겟 넘버 ★(DFS)  (0) 2024.07.18
14. 카펫 (완전 탐색)  (0) 2024.07.18
12. H-index ★★ (정렬)  (0) 2024.07.18
11. 가장 큰 수 ★★ (정렬)  (0) 2024.07.18
10. 주식가격 (스택/큐) ★★  (0) 2024.07.18
복사했습니다!