반응형
프로그래머스: 소수찾기Lv2
문제풀러가기
https://programmers.co.kr/learn/courses/30/lessons/42839?language=python3
문제
한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다.
각 종이 조각에 적힌 숫자가 적힌 문자열 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
반응형
'코딩테스트 > 코딩테스트 문제' 카테고리의 다른 글
코딩테스트 준비 - 가장 큰 수: 풀이/2개의 방법 (파이썬) (0) | 2021.06.28 |
---|---|
코딩테스트 준비 - 프로그래머스: 게임 맵 최단거리 풀이/BFS (파이썬) (4) | 2021.06.28 |
코딩테스트 준비 - 프로그래머스: 더 맵게 풀이/heap에 대하여 (파이썬) (0) | 2021.06.27 |
코딩테스트 준비 - 프로그래머스: 문자열 압축 풀이+상세 (파이썬) (4) | 2021.06.25 |
코딩테스트 준비 - 프로그래머스: 3진법 뒤집기(파이썬)/파이썬 진법 계산 (0) | 2021.06.20 |
댓글