728x90
해당 문제를 봤을때, 완전 탐색이라고 적혀 있어서 코드가 길어질것 같다는 예상을 했다.
코드는 아래와 같이 작성했다.
주어진 숫자 문자열을 숫자 배열(digits)로 변환한 다음 generatePrimes함수를 호출하여 가능한 소수를 생성
그리고 생성된 소수의 개수를 반환한다.
generatePrimes 함수는 주어진 숫자로부터 가능한 소수를 생성한다.
이 함수는 generatePermutations 함수를 호출하여 가능한 모든 순열을 생성한 다음 isPrime 함수를 사용하여
소수인지를 확인하고, 소수인 경우에만 리스트에 추가한다.
generatePermutations 함수는 재귀적으로 주어진 숫자 배열(digits)로부터 모든 순열을 생성한다.
이 함수는 현재까지의 순열(current)에 새로운 숫자를 추가하고, 그 후에 현재 숫자를 제외한 숫자 배열로 재귀적으로 호출하여 순열을 계속 생성한다. 각 순열이 완성될 때마다 리스트에 추가되어 소수인지를 확인하는 과정을 거친다.
728x90
'TIL > kotlin 알고리즘' 카테고리의 다른 글
kotlin 프로그래머스 lv2 탐욕법 큰수 만들기 (0) | 2024.03.25 |
---|---|
kotlin 프로그래머스 lv2 쿼드압축 후 개수 세기 (1) | 2024.03.23 |
kotlin 프로그래머스 lv2 가장 큰 수 (1) | 2024.03.22 |
kotlin 프로그래머스 lv2 다리를 지나는 트럭 (1) | 2024.03.22 |
kotlin 프로그래머스 lv2 2개 이하로 다른 비트 (0) | 2024.03.21 |