[Python] 프로그래머스 / level 2 / 완전탐색 / 구현 / 소수찾기 / 리스트 내 모든 순열 구하기

2024. 4. 4. 09:31Coding Test/Python

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

from itertools import permutations
def solution(numbers):
    number = list(numbers)
    num = []
    
    for i in range(1, len(number)+1):
        for permutation in permutations(number,i):
            if int(''.join(permutation))==1 or int(''.join(permutation))==0:
                continue
            else:
                num.append(int(''.join(permutation)))
    
    num = list(set(num))
    answer = 0
    
    def is_prime(x):
        for k in range(2, x):
            if x%k==0:
                return False
        return True
        
    for j in num:
        if is_prime(j):
            answer += 1
    
    return answer

 

일단 정답은 이렇지만

 

 

for i in range(1, len(number)+1):
        for permutation in permutations(number,i):
            if int(''.join(permutation))==1 or int(''.join(permutation))==0:
                continue
            else:
                num.append(int(''.join(permutation)))

 

이것과 같이 for문을 2번 사용해서 모든 개수에 따라 순열을 구할 수 있다!

 

def is_prime(x):
    for k in range(2, x):
       if x%k==0:
           return False
    return True

 

 

또한, 소수 찾는 함수