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
반응형
'Kotlin > 코딩테스트' 카테고리의 다른 글
[프로그래머스] 귤 고르기 - kotlin (0) | 2023.04.11 |
---|---|
[프로그래머스] 기사단원의 무기 - kotlin (0) | 2023.04.11 |
[프로그래머스] 옹알이 (2) - kotlin (0) | 2023.04.11 |
[프로그래머스] 달리기 경주 - kotlin (0) | 2023.04.06 |
[프로그래머스] 문자열 나누기 - kotlin (0) | 2023.04.05 |