내 코드
class Solution {
fun solution(lottos: IntArray, win_nums: IntArray): IntArray {
var answer: IntArray = intArrayOf()
val listOfAnswer: MutableList<Int> = answer.toMutableList()
var correctCount = 0
var unreconizableCount = 0
// 1번
lottos.forEach{
i ->
if(win_nums.contains(i)) {
correctCount++
} else if (i == 0) {
unreconizableCount++
}
}
// ------------ 3번 시작
if(correctCount == win_nums.size) {
listOfAnswer.add(1)
listOfAnswer.add(1)
return listOfAnswer.toIntArray()
}
if(unreconizableCount == win_nums.size) {
listOfAnswer.add(1)
listOfAnswer.add(6)
return listOfAnswer.toIntArray()
}
// ------------ 3번 끝
when(correctCount) {
2 -> listOfAnswer.add(5)
3 -> listOfAnswer.add(4)
4 -> listOfAnswer.add(3)
5 -> listOfAnswer.add(2)
6 -> listOfAnswer.add(1)
else -> listOfAnswer.add(6)
}
when(correctCount + unreconizableCount) {
2 -> listOfAnswer.add(5)
3 -> listOfAnswer.add(4)
4 -> listOfAnswer.add(3)
5 -> listOfAnswer.add(2)
6 -> if(unreconizableCount == 6) listOfAnswer.add(6) else listOfAnswer.add(1)
else -> listOfAnswer.add(6)
}
if(listOfAnswer.last() < listOfAnswer.first()) {
return swapAscValue(listOfAnswer).toIntArray()
}
return listOfAnswer.toIntArray()
}
fun swapAscValue(listOfAnswer: MutableList<Int>): MutableList<Int> {
var first = listOfAnswer.first()
listOfAnswer[0] = listOfAnswer.last()
listOfAnswer[1] = first
return listOfAnswer
}
}
//hslim님 코드 참고
fun checkGrade(v:Int):Int{
return when(v){
6 -> 1
5 -> 2
4 -> 3
3 -> 4
2 -> 5
else -> 6
}
}
//hslim님 코드 참고
listOfAnswer.add(checkGrade(correctCount + unreconizableCount))
listOfAnswer.add(checkGrade(correctCount))
설령 filter를 썼다해도 lotos.filter(winNums::contains)로 못했겠지...
재밌다