Programmers/프로그래머스-소수 찾기-python
📖 문제
🎈 풀이
- 제곱근을 구하기 위해 math를, 순열을 구하기 위해 itertools의 permutations를 import 해주었다.
- 소수인 지 판별하기 위한 함수 is_prime을 만들었다.
- numbers(문자열)를 int형 array로 바꿔주었다.(num_arr)
- numbers의 length가 1~7이라고 하여.. 각 각 처리해주었다.(매우 안 좋은 방법이라고 생각은 했지만..)
- num_arr의 값을 가지고 순열을 만들고 list로 변환해주었다(li)
li를 순회하며 만들 수 있는 값이 소수인 지 확인하고 소수 array(prime_number)에 포함되어
있지 않으면 소수 array에 추가해주었다.
- 확인이 끝난 뒤 prime_number의 len을 출력하였다.
💻 코드
💊 탑👍 코드
- 와우...👍👍👍👍👍
- set으로 중복되는 숫자(중복숫자가 가능하고, 순열이므로 같은 수가 있을 수 있음)를 제거할 수 있었고,
|= 연산자를 통해 a에 계속 더해줄 수 있다는 것도 공부하였다(union 연산자)
- a-=set(range(0,2)) 는 0,1를 제거해준 것이고, 에라토스테네스의 체를 이용해서 소수가 아닌 값들을 제거해주었다.
- 댓글을 보니 '999'처럼 소수가 하나도 없는 경우 a가 비어버려서 max함수에서 에러가 난다.
조금 더 처리가 필요할 것 같지만, 생각이 대단했던 것 같다.
✨ 실행 결과
💡 문제 출처
프로그래머스