본문 바로가기
Algorithm/Programmers

[Permutation] level2. 소수찾기

by Wikinist 2024. 1. 3.

문제

https://school.programmers.co.kr/learn/courses/30/lessons/42839?language=python3#

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

아이디어

순열 생성

  1. 입력받은 문자열로부터 각 숫자의 개수를 카운팅 한다.
  2. 숫자의 중복여부는 무시하고 고유하게 나온 숫자리스트를 순회한다.
  3. 이전 순열 문자열에 선택된 숫자를 붙이고 카운팅에서 제외한 뒤 순열 생성함수를 다시 호출한다.
  4. 선택된 숫자를 카운팅에 다시 추가한다. 

소수 확인

  1. 소수임을 확인하려는 숫자를 n이라고 한다.
  2. for i in range(2, floor(sqrt(n)+1)) 범위를 돌면서 n을 i로 나눈 나머지가 0이 된다면 false를 반환한다.

코드

https://github.com/tooha289/Algorithm/blob/main/Programmers/%5BPermutation%5Dlevel2_%EC%86%8C%EC%88%98%EC%B0%BE%EA%B8%B0.py