Algorithm/프로그래머스

프로그래머스 로또 최고 순위와 최저 순위

chbong 2022. 8. 9. 22:45
package ch.programmers;

public class Algorithm5 {
    /*

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

     */
    class Solution {
        public int[] solution(int[] lottos, int[] win_nums) {

            int[]  number = new int[6];
            int chk = 0;
            int zero = 0;
            for(int i =0; i<6 ; i++){
                if(lottos[i] != 0){
                    number[chk] = lottos[i];
                    chk++;
                }else{
                    zero++;
                }
            }
            int sol = 0;
            for(int i=0; i<chk ;i++){
                for(int j=0;  j<6; j++){
                    if(number[i] == win_nums[j]){
                        sol++;
                    }
                }
            }
            int min = 0;
            int max = 0;
            if(zero == 0){
                max = 7 - sol;
                if(sol == 0){
                    min = 6;
                    max = 6;
                }else{
                    min = 7 - sol;
                }

            }else{
                if(zero == 6){
                    min = 6;
                }else{
                    min = 7-sol;
                }
                if(zero + sol >= 6){
                    max = 1;
                }else{
                    max = 7 - (zero+sol);
                }
            }









            int[] answer = {max, min};
            return answer;
        }
    }
}

풀이

 

일단 0이 아닌 로또번호를 구하여서 number에 넣어주었다.

0인 경우는 zero에서 카운팅을 하였다.

numbers와 win_nums(로또 당첨번호) 를 비교하여 만약 같은 숫자가 있다면 sol에 ++ 해주었다.

그 후에  zero가 0개일경우와 아닐경우를 분리하며 최소 최대 등수를 구분하여 해결하였다.