728x90
https://school.programmers.co.kr/learn/courses/30/lessons/131128
숫자 짝꿍 문제는 filter(), 와 contains , sort(), joinToString() 등등 을 사용하면 쉽게 문제가 풀릴 거라고 생각했지만
이 부분의 개 수에 맞춰서 중복제거를 해줘야 했기 때문에 안타깝게 풀지 못하였다.
내가 풀었던 방식은 이러했는데 위의 이슈 때문에 정답이 아니었다.
val a = X.toList().filter { Y.toList().contains(it) }.sortedDescending()
if (a.distinct().joinToString("") == "0") return "0"
println(a)
return if (a.isEmpty()) "-1" else a.joinToString("")
다른 분의 풀이 방법
import kotlin.math.min
var answer: String = ""
for (ch in (9 downTo 0).toList().map { it.toString() }) {
answer += ch.repeat(
min(
X.count {
it.toString() == ch
},
Y.count {
it.toString() == ch
})
)
}
if (answer.isEmpty()) answer = "-1"
if (answer.toList().distinct() == listOf('0')) answer = "0"
return answer
repeat() 과 min() 을 사용하였는데 repeat()은 해당 숫자 만큼 반복해주는 메서드이고
min() 은 둘 중 더 작을 수를 return 한다고 되어있다.
대단하다...
'알고리즘' 카테고리의 다른 글
[코딩 테스트] Level. 1 햄버거 만들기 (kotlin,코틀린) (0) | 2023.05.16 |
---|---|
[코딩 테스트] Level. 1 옹알이 (kotlin,코틀린) (1) | 2023.05.16 |
[코딩테스트] Level. 1 내적 Kotlin (0) | 2023.03.28 |
[코딩 테스트] Level. 1 크레인 인형뽑기 게임 (Kotlin) (0) | 2023.03.21 |
[코딩테스트] Level. 1 행렬의 덧셈 Kotlin (0) | 2023.02.22 |