코딩테스트 연습 2021 Dev-Matching: 웹 백엔드 개발자(상반기) "로또의 최고 순위와 최저 순위"

yeon_taetae·2021년 5월 2일
0

프로그래머스

목록 보기
4/10
post-thumbnail

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
    }
}

0개의 댓글