TIL/kotlin 알고리즘

kotlin 완전탐색 소수찾기

crablo 2024. 3. 23. 18:09
728x90

해당 문제를 봤을때, 완전 탐색이라고 적혀 있어서 코드가 길어질것 같다는 예상을 했다.

코드는 아래와 같이 작성했다.

 주어진 숫자 문자열을 숫자 배열(digits)로 변환한 다음 generatePrimes함수를 호출하여 가능한 소수를 생성

그리고 생성된 소수의 개수를 반환한다.

generatePrimes 함수는 주어진 숫자로부터 가능한 소수를 생성한다.

이 함수는 generatePermutations 함수를 호출하여 가능한 모든 순열을 생성한 다음 isPrime 함수를 사용하여

소수인지를 확인하고, 소수인 경우에만 리스트에 추가한다.

generatePermutations 함수는 재귀적으로 주어진 숫자 배열(digits)로부터 모든 순열을 생성한다.

이 함수는 현재까지의 순열(current)에 새로운 숫자를 추가하고, 그 후에 현재 숫자를 제외한 숫자 배열로 재귀적으로 호출하여 순열을 계속 생성한다. 각 순열이 완성될 때마다 리스트에 추가되어 소수인지를 확인하는 과정을 거친다.

 

728x90