Kotlin/코딩테스트
[프로그래머스] 숫자 짝꿍 - kotlin
깨노비
2023. 4. 11. 00:51
728x90
반응형
두 정수 X, Y의 임의의 자리에서 공통으로 나타나는 정수 k(0 ≤ k ≤ 9)들을 이용하여 만들 수 있는 가장 큰 정수를 두 수의 짝꿍이라 합니다(단, 공통으로 나타나는 정수 중 서로 짝지을 수 있는 숫자만 사용합니다). X, Y의 짝꿍이 존재하지 않으면, 짝꿍은 -1입니다. X, Y의 짝꿍이 0으로만 구성되어 있다면, 짝꿍은 0입니다.


import kotlin.math.min
class Solution {
fun solution(X: String, Y: String): String {
val xMap = X.groupingBy { chr -> chr }.eachCount()
val yMap = Y.groupingBy { chr -> chr }.eachCount()
val sb = StringBuilder()
for ( i in 57 downTo 48 ) {
val key = i.toChar()
val cnt = min(xMap[key] ?: 0, yMap[key] ?: 0)
repeat(cnt) {
sb.append(key)
}
}
val cnt = sb.filter { chr -> chr != '0' }.count()
return when {
sb.isEmpty() -> "-1"
cnt == 0 -> "0"
else -> sb.toString()
}
}
}
728x90
반응형