Programmers/프로그래머스-소수 찾기-python

Ne5s·2022년 8월 26일
0

알고리즘 문제풀기

목록 보기
21/31
post-thumbnail
post-custom-banner

📖 문제

🎈 풀이

  • 제곱근을 구하기 위해 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함수에서 에러가 난다.
    조금 더 처리가 필요할 것 같지만, 생각이 대단했던 것 같다.

✨ 실행 결과

💡 문제 출처

프로그래머스

profile
초보개발자
post-custom-banner

0개의 댓글