//과일 장수
class Fruiterer {
fun solution(k: Int, m: Int, score: IntArray): Int {
var sum = 0
score.sortedArrayDescending().also { arr ->
repeat(arr.size / m) { i ->
val start = i * m
val end = start + m
arr.copyOfRange(start, end).also { copy ->
sum += (copy.minOrNull() ?: 1) * m
}
}
}
return sum
}
}
오름차순을 배열을 정렬하고,
상자에 담을 수 있는 양을 m으로 나누어,
상자에서 제일 낮은 품종의 사과를 m을 곱해
sum에 합하여 계산한다.
옹아리 (2)
//옹아리 (2)
class Babbling2 {
fun solution(babbling: Array<String>): Int {
//할수 있는 발음
val babblingBabyCan = arrayOf("aya", "ye", "woo", "ma")
val sb = StringBuilder()
var cnt = 0
babbling.forEach { bab ->
sb.append(bab)
for(canBab in babblingBabyCan) {
//만약 같은 발음 연속으로 되면 그건 해당 안됨
if(sb.contains(Regex("$canBab$canBab"))) {
break
}
//이렇게 둔 이유는 replace 과정 중에 myea 같이
//ye를 먼저 지우고, 그 사이가 없어져 ma도 같이 없어지는 경우를 방지하기
//위해서이다.
replace(sb, canBab, " ")
}
//위해서 주었던 띄어쓰기를 빈칸으로 바꾼다.
replace(sb, " ", "")
if(sb.toString() == "") {
cnt++
}
sb.clear()
}
return cnt
}
private fun replace(sb: StringBuilder, old: String, new: String) = sb.replace(0, sb.length, sb.toString().replace(old, new))
}