/////////
Search
3️⃣

소수 찾기

1. 접근 방식

1차
2차

2. 기본 코드에 대한 설명

from itertools import permutations # 소수 판별 함수 def prime_num(n): if n < 2: return False for i in range(2, n): if n % i == 0: return False return True def solution(numbers): answer = 0 listchar = [] result1 = [] # 순열이 담긴 리스트 만들기 for i in range(1, len(numbers)+1): tmp = list(permutations(numbers,i)) # [["0"],["1"],["1"]],[["0","1"],["0","1"],["1","1"]],[["0","1","1"]] listchar += [int(''.join(i)) for i in tmp] # 원소 하나로 합치기 result1 = list(set(listchar)) # set 활용해서 중복제거 [0,1,11] # 리스트 카운트 (체) for i in result1: if prime_num(i): answer += 1 else: continue return answer
Python
복사

3. 추가적으로 개선한 코드에 대한 설명

-

4. 사용 라이브러리 정리

itertools
에라토스테네스의 체
알고리즘 설명 1. 2부터 소수를 구하고자 하는 구간의 모든 수를 나열 2. 2부터 시작해서 나열된 수에서 지워지지 않은 수 중 가장 작은 2를 소수로 선택하고 2의 배수를 지운다. 3. 지워지지 않은 3을 소수로 선택하고 3의 배수를 지운다. 4. 4는 지워졌다 > 넘어감 5. 5를 소수로 선택하고 5의 배수를 지운다. 6. 2-4를 반복한다. 7. 반복이 끝나면 지워지지 않은 수들을 소수로 출력한다.

5. 기타(문제 풀이에 어려웠던 점, 구현하고자 했는데 실패한 방식)

ex) 이 방식으로 접근했는데 구현이 힘들어서 개선했습니다. 그 방식으로 접근했는데 접근방식이 잘못되었다는 것을 깨닫고 다시 풀었습니다.