programmers.co.kr/learn/courses/30/lessons/42839
코딩테스트 연습 - 소수 찾기
한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이
programmers.co.kr
풀이 전략
1. 모든 경우의 수를 탐색해서 숫자의 집합을 만들자
ex) input =>"14" , nums = [1, 4, 14, 41]
2. 소수를 판별하는 함수를 만들어서 총 몇 개의 소수를 만들 수 있는지 return하자
코드
import itertools
def isPrimeNum(n):
if n == 0 or n == 1:
return False
for i in range(2, n):
if n % i == 0:
return False
return True
def solution(numbers):
nums = list()
for i in range(1, len(numbers) + 1):
N = itertools.permutations(numbers, i)
nums.extend(map(lambda x: int(''.join(x)), N))
nums = set(nums)
res = 0
for num in nums:
if isPrimeNum(num):
res += 1
return res
'코딩 테스트' 카테고리의 다른 글
[파이썬][백준] 2810번 컵홀더 (0) | 2021.01.07 |
---|---|
[파이썬][백준] 1343번 폴리오미노 (0) | 2021.01.06 |
[파이썬][백준 2661] 좋은 수열 (0) | 2021.01.04 |
[백준] 14720 우유축제, 파이썬 (0) | 2020.12.24 |
[프로그래머스] 큰 수 만들기 (0) | 2020.12.22 |