알고리즘
100일 동안 매일 알고리즘을 하면? - 1일차
유병각
2021. 12. 24. 17:52
100일 동안 매일 알고리즘을 하면? - 1일차
도대체 어떻게 공부해야할지 잘 감이 안잡혀서 일단 프로그래머스에 있는 고득점kit 먼저 전부 다 풀어보기로 했다.
일단 오늘은 완전탐색에 있는 소수찾기 문제.
오늘 배운것:
1. python 순열 모듈
2. 소수판별법 2가지
2-1 : 1부터 n의 제곱근까지 나누어 떨어지는지 확인하는 방법
2-2: 에라토스테네스의 채
3. 문자열을 list 로 바꾸는 법/ 튜플 및 리스트를 문자열로 합치는 법
import math;
import itertools;
# 2 : 소수판별법 (제곱근까지 나누어보기)
def isPrime(n) :
if (n < 2) : return False;
for i in range(1, int(math.sqrt(n)) + 1): # squre root
if ((n % i) == 0 and i != 1):
return False;
return True;
def solution(numbers):
li = list(numbers);
ret = [];
for i in range(1, len(li) + 1):
for a in itertools.permutations(li,i): # 1 python permutations 함수
i = ''.join(map(str, a)) # 3 : 튜플을 string 으로 합치기. map!!!
permuNum = int(i)
if (isPrime(permuNum)):
ret.append(permuNum);
return len(set(ret));