https://programmers.co.kr/learn/courses/30/lessons/77484
문제설명이 복잡하므로 링크에 들어가셔서 보시는게 낫습니다.
요약 : 로또를 샀는데 동생이 번호에 낙서(0)를해 알아볼 수 없으므로 최대, 최소 등수를 반환하는문제.
입출력 예
class Solution {
fun solution(lottos: IntArray, win_nums: IntArray): IntArray {
var answer: IntArray = intArrayOf()
var answer_List = mutableListOf<Int>() //결과를 담을 List
var match_count: Int = 0 //로또번호 맞은 카운트
var count_0: Int = 0 //동생이 낙서한(0) 번호 카운트
for(i in 0..lottos.size-1){ //0을 제외한 번호만 리스트에 add
if(lottos[i] != 0){
answer_List.add(lottos[i])
}
else continue
}
count_0 = lottos.size - answer_List.size //0개수 count
for(i in 0..win_nums.size-1){ //로또번호 맞추기
for(j in 0..answer_List.size-1){
if(win_nums[i] == answer_List[j]){
match_count++
}
}
}
answer_List.clear()//정답만 넣기위한 Clear
when(match_count + count_0){ //예측할 수 있는 최대 등수
6 -> answer_List.add(1)
5 -> answer_List.add(2)
4 -> answer_List.add(3)
3 -> answer_List.add(4)
2 -> answer_List.add(5)
else -> answer_List.add(6)
}
when(match_count){ // 예측할 수 없는 최대 등수
6 -> answer_List.add(1)
5 -> answer_List.add(2)
4 -> answer_List.add(3)
3 -> answer_List.add(4)
2 -> answer_List.add(5)
else -> answer_List.add(6)
}
answer = answer_List.toIntArray()
return answer
}
}