코딩테스트/프로그래머스
[프로그래머스] 완전탐색 : 소수 찾기 Kotlin
일상 속 둔치
2020. 10. 2. 20:51
만들 수 있는 숫자를 조합을 사용하여 먼저 구하고
해당 조합들이 소수인지 전부 확인해보았다.
class Solution {
lateinit var string: String
lateinit var check: BooleanArray
val answerSet = mutableSetOf<Int>()
fun solution(numbers: String): Int {
string = numbers
check = BooleanArray(string.length)
permutation(0,"")
return answerSet.size
}
fun permutation(depth: Int, makeStr: String){
if(depth == string.length){
if(makeStr.equals("")) return
if(isPrime(makeStr.toInt())){
answerSet.add(makeStr.toInt())
}
return
}
for(i in 0..string.length-1){
if(!check[i]) {
check[i] = true
permutation(depth + 1, makeStr + string[i])
check[i] = false
permutation(depth + 1, makeStr)
}
}
}
fun isPrime(number: Int): Boolean{
for(i in 2..number-2){
if(number%i == 0){
return false
}
}
if(number <= 1) return false
return true
}
}