본문 바로가기
코딩테스트/코딩테스트 문제

코딩테스트 준비 - 프로그래머스: 소수찾기Lv2 풀이/permutations에 대하여 (파이썬)

by 공부가싫다가도좋아 2021. 6. 27.
반응형

프로그래머스: 소수찾기Lv2


문제풀러가기

https://programmers.co.kr/learn/courses/30/lessons/42839?language=python3 

 

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

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

programmers.co.kr


문제

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

각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 조각으로 만들 수 있는 소수가 몇 개인지 return 하도록 solution 함수를 완성해주세요.


풀이

1. 에라토스테네스 체로 풀기

2. permutations 활용


코드

import itertools
def solution(numbers):
    result=[]
    for i in range(1,len(numbers)+1):
        a=list(map(''.join,itertools.permutations(numbers,i))) 
        for j in list(set(a)):
            if int(j)<=1: # 0혹은 1일경우를 고려하여 제거.
                continue
            con=True 
            for c in range(2,int(int(j)**0.5)+1):
                if int(j)%c==0:
                    con=False  #소수가 아닐 경우 con=False
                    break
            if con:
                result.append(int(j))
    return len(set(result))

itertools의 permutations와 combination에대해 자세히 알고 싶다면 아래 링크를 참조해 주세요 :)

2021.06.18 - [(Python)파이썬/(Python)파이썬 문법] - (파이썬) 리스트 요소 조합하기/ permutations & combinations

 

(파이썬) 리스트 요소 조합하기/ permutations & combinations

리스트 요소 조합하기 예를들어 arr= [1,2,3,4]가 있을 때, 리스트 안의 숫자들을 여러가지 형태로 조합하고 싶을때가 있습니다. 그럴때 사용하는 두 가지 방법이 있습니다. 방법1: 순서 상관 있는

eunhee-programming.tistory.com

반응형

댓글