728x90
<문제 링크>
https://programmers.co.kr/learn/courses/30/lessons/42839
<문제 풀이>
- 종이 조각으로 여러 개의 조합을 만들어야 하므로 itertools 라이브러리 사용
- 중복된 숫자가 나올 수 있으므로 set() 사용
- 소수는 에라토스테네스의 체 공식으로 찾음
<코드>
from itertools import permutations
from math import sqrt
def solution(numbers):
s = set()
for i in range(1,len(numbers)+1):
for a in permutations(numbers,i):
s.add(a)
li = set(map(''.join,s))
li2 = set(map(''.join,s))
li = set(map(int,li))
li2 = set(map(int,li))
for i in li:
if i==1 or i==0:
li2.remove(i)
else:
for k in range(2,int(sqrt(max(li)))+1):
if i%k==0 and i!=k:
li2.remove(i)
break
return len(li2)
<고쳐야 할 점>
- from itertools import permutations 메서드 기억하기
- 에라토스테네스의 체(2~ x 루트값의 범위에 있는 값을 x로 나누었을 때 나누어 떨어지지 않으면 소수) 기억하기
- 제곱근 함수(sqrt) 기억하기
'두두의 알고리즘 > 문제' 카테고리의 다른 글
[이분탐색] 난이도1.5, Amazon 인터뷰 '고정점 찾기' (Python) (0) | 2021.11.22 |
---|---|
[이분탐색] 난이도1.5, 이취코 197p '부품 찾기' (Python) (0) | 2021.11.22 |
[완전탐색] 프로그래머스 L1 '모의고사' (Python) (0) | 2021.11.22 |
[큐] 프로그래머스 L2 '다리를 지나는 트럭' (Python) (0) | 2021.11.22 |
[큐] 프로그래머스 L2 '기능개발' (Python) (0) | 2021.11.22 |