chyam

[프로그래머스 Lv2,python]- 소수 찾기 본문

프로그래머스/LV2

[프로그래머스 Lv2,python]- 소수 찾기

chyam_eun 2025. 2. 14. 10:40

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

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

import itertools 
def isprime(n): # 소수인지 판별
    n=int(n)
    if n<=1:
        return False
    for i in range(2,n):
        if n%i==0:
            return False
    return True

def solution(numbers):
    cnt=0
    le=len(numbers)
    nPr =[] # 순열을 저장할 곳
    for i in range(1,le+1): # 길이가 1부터 number의 길이까지 순열로 저장
        nPr.extend(list(itertools.permutations(numbers, i))) # 순열할때 list로 저장해줘야함
    for i in range(len(nPr)): # ["~","~"],["~","~"] 형태이므로 ["~","~","~","~"] 형태로 바꿔주기
        nPr[i]="".join(nPr[i])
    nPr=list(set(map(int,nPr))) # 중복 제거
    for i in nPr:
        if isprime(i)==True: # 소수 개수 세기
            cnt+=1
    return cnt

extend는 append와 다르게 리스트 형태를 추가하게되면 개별 값을 넣게된다. 

예를 들면 아래와 같을때 lst는 [1,2,3,[4,5]]가 되고,

lst = [1, 2, 3]
lst.append([4, 5])

extend를 사용하면 lst는 [1,2,3,4,5]가 된다.

lst = [1, 2, 3]
lst.extend([4, 5])