만들 수 있는 숫자를 조합을 사용하여 먼저 구하고
해당 조합들이 소수인지 전부 확인해보았다.
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
}
}
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 완전탐색 : 카펫 Kotlin (0) | 2020.10.02 |
---|---|
[프로그래머스] 완전탐색 : 모의고사 Kotlin (0) | 2020.10.02 |
[프로그래머스] 정렬 : H-Index Kotlin (0) | 2020.09.26 |
[프로그래머스] 정렬 : 가장 큰 수 (0) | 2020.09.26 |
[프로그래머스] 정렬 : K번째수 Kotlin (0) | 2020.09.26 |
댓글