fun solution(numbers: String): Int {
val numbering = numbers.split("").toMutableList()
numbering.removeFirst()
numbering.removeAt(numbering.size-1)
val hash = HashSet<Int>()
searchAll(hash,numbering,"")
var answer = 0
for (i in hash){
var isAnswer = true
for (it in 2..i-2){
if(i %it ==0){
isAnswer = false
break
}
}
if(isAnswer && i >1){
answer++
println(i)
}
}
println(answer)
return answer
}
fun searchAll(hashSet : HashSet<Int>, numbers: MutableList<String>, prefix :String){
if(prefix !== ""){ // 빈공간 아니면 더해짐
hashSet.add(prefix.toInt())
}
for (i in 0 until numbers.size){ // 다음 스트링에 모든 스트링을 받아줌
val newNumbers = mutableListOf<String>()
for (i in numbers){
newNumbers.add(i)
}
val a= prefix+ newNumbers[i]
newNumbers.removeAt(i)
searchAll(hashSet,newNumbers,a)
}
}
1. hash맵을 사용하면 중복되는거 막아준다더라.
그냥 distinc()를 사용해도 구분해줌.
이런식으로 쓰는거 몇개 더 풀어보고싶은디 찾아봐야겠따.
'코딩테스트(코틀린) 기초부터 연습' 카테고리의 다른 글
프로그래머스 탐욕법 큰수만들기 (0) | 2021.04.09 |
---|---|
프로그래머스 탐욕법 체육복 (0) | 2021.04.09 |
프로그래머스 디스크컨트롤러 힙(Heap) (0) | 2021.04.08 |
프로그래머스 디스크컨트롤러 힙(Heap) (0) | 2021.04.06 |
프로그래머스 h-index문제 (정렬) (0) | 2021.04.06 |