Devlog_by_0giru

[프로그래머스] 소수 찾기 본문

[PS]

[프로그래머스] 소수 찾기

0giru_kim 2021. 4. 4. 16:12

programmers.co.kr/learn/courses/30/lessons/42839

 

코딩테스트 연습 - 소수 찾기

한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이

programmers.co.kr

순열을 활용해볼 수 있었던 문제였다.

 

처음에는 문제를 잘못 이해해서 중복순열을 사용했다가, 문제를 다시 읽어보니 사용한 카드를 다시 사용할 수 없어 순열을 이용해 해결할 수 있었다.

 

소수를 판별하는 로직을 기억해두는 것이 좋을 것 같다.

 

from itertools import permutations

def Prime(toTest):
    if toTest == 0 or toTest == 1:
        return False
    for i in range(2, toTest):
        if toTest%i == 0:
            return False
    return True

def PrimeArray(array, count):
    for arrays in array:
        if Prime(arrays):
            count += 1
    return count

def assembleTup(tups:list):
    temp = ''
    for tup in range(len(tups)):
        temp += tups[tup]
    return temp

def solution(numbers):
    array = []
    count = 0
    result = 0
    length = len(numbers)

    for i in range(1, length+1):
        tups = list(permutations(numbers, i))
        for tup in tups:
            if int(assembleTup(tup)) not in array:
                array.append(int(assembleTup(tup)))

    return PrimeArray(array, count)

'[PS]' 카테고리의 다른 글

[프로그래머스] 카펫  (0) 2021.05.14
[프로그래머스] 타겟 넘버  (0) 2021.04.20
[boj] 촌수계산_2644  (0) 2021.04.02
[boj] 평범한 배낭_12865  (0) 2021.03.29
[boj] 안녕_1535  (0) 2021.03.29