최고 순위와 최저 순위를 구분 짓는 방법은 아래와 같다
1. 최고 순위 = 일치하는 번호 + 알아볼 수 없는 번호(0)
2. 최저 순위 = 일치하는 번호
제한사항도 빡세지 않기 때문에 본인이 편한 방법으로 구현을 진행하면 된다.
fun solution1(lottos: IntArray, win_nums: IntArray): IntArray{
return intArrayOf(
lottos.size.plus(1) - lottos.filter { win_nums.contains(it) || it == 0 }.size,
lottos.size.plus(1) - lottos.filter { win_nums .contains(it)}.size
).map { if(it > 6) it - 1 else it}.toIntArray()
}
정말 깔끔한 코드이다!!
class Solution {
fun solution(lottos: IntArray, win_nums: IntArray): IntArray {
var correct = 0
var zero_count = 0
lottos.forEach {
if(win_nums.contains(it)){
correct++
}
if(it == 0)
zero_count++
}
val max = correct + zero_count
val min = correct
return intArrayOf(rank(max),rank(min))
}
private fun rank(v : Int) = when(v){
6 -> 1
5 -> 2
4 -> 3
3 -> 4
2 -> 5
else -> 6
}
}