소수 찾기
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
- 내 풀이
- n자리 수를 조각내서 조합할 때 1자리수, 2자리수, ....n자리수 숫자들을 모두 구해야함
- list+list 가능
from itertools import permutations
def solution(numbers):
answer = 0
num1=[i for i in str(numbers)]
num=num1
for i in range(2,len(num1)+1):
num=num+list(permutations(num1,i))
num=list(set(int("".join(m)) for m in num))
for n in num:
n=int(n)
if n==0 or n==1:
continue
for i in range(2,n//2+1):
if n%i==0:
break
else:
answer+=1
return answer
- 다른 사람 풀이
- 약수는 대칭적이기 때문에 sqrt(n)까지만 알아보면 된다
- set끼리 합칠 때 합집합 이용
- set |= set
- set에서 뺄 때
- set-= set
- set-= set
from itertools import permutations
def solution(numbers):
answer = 0
num = set()
for i in range(len(numbers)):
num |= set(map(int, map("".join, permutations(list(numbers), i + 1))))
num -= set(range(0, 2))
for n in num:
for i in range(2,int(n**0.5)+1):
if n%i==0:
break
else:
answer+=1
return answer
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
| [프로그래머스] [Level 2] [완전 탐색] 조이스틱 (0) | 2022.08.18 |
|---|---|
| [프로그래머스] [Level 2] [완전탐색] 피로도 (0) | 2022.08.12 |
| [프로그래머스] [Level 2] [Heap] 더 맵게 (0) | 2022.07.26 |
| [프로그래머스] [Level 2] [스택/큐] 프린터 (0) | 2022.07.23 |
| [프로그래머스] [Level 2] [스택/큐] 기능 개발 (0) | 2022.07.23 |