fun solution(babbling: Array<String>): Int {
var answer = 0
val speakingWords = arrayOf("aya","ye", "woo", "ma")
makeBabbling(speakingWords, -1, StringBuilder())
for(word in babbling) {
if(babblings.contains(word)) {
answer++
}
}
return answer
}
private val babblings = mutableListOf<String>()
fun makeBabbling(speakingWords: Array<String>, currentSpeakingIndex: Int, makedBabbling: StringBuilder): Unit {
if(makedBabbling.length > 30)
return
babblings.add(makedBabbling.toString())
for(speakingIndex in 0..speakingWords.size-1) {
if(speakingIndex == currentSpeakingIndex)
continue
var currentWord = speakingWords[speakingIndex]
makedBabbling.append(currentWord)
makeBabbling(speakingWords, speakingIndex, makedBabbling)
makedBabbling.delete(makedBabbling.length - currentWord.length, makedBabbling.length)
}
}
포인트
- 나올 수 있는 모든 경우의 수를 list(babblings)에 담는다.(makeBabbling 함수)
- input으로 주어진 babbling 배열의 각 원소가 babblings에 있는지 확인한다.
추후 개선할 점
- 정규표현식을 사용
- 훨씬 코드도 간단해지고 빨라지는 것을 확인했다.
'TLI > 코드카타' 카테고리의 다른 글
2024.05.29 TIL 코트카타 66번(대충만든자판) (0) | 2024.05.29 |
---|---|
2024.05.28 TIL 코트카타 65번(문자열나누기) (0) | 2024.05.28 |
2024.05.27 내일배움캠프 Android 4기를 시작하며 (0) | 2024.05.27 |
2024.05.24 TIL 코트카타 61번(로또의 최고 순위와 최저 순위) (0) | 2024.05.24 |
2024.05.23 TIL 코트카타 60번(기사단원의 무기) (0) | 2024.05.23 |