

실제로 맞은 개수와 0의 개수를 따로 구한다.
두개를 더한값이 최고순위 실제로 맞은값이 최저순위가 된다.
class Solution {
    public int[] solution(int[] lottos, int[] win_nums) {
        int[] answer = {0,0};
        int cnt =0;
        int zero =0;
        for(int i : lottos){
            if (i==0){
                zero++;
                continue;
            }
            for(int j : win_nums){
                if(i ==j) cnt++;
                
            }
        }
       
        int maxNum = grade(cnt+zero);
        int minNum = grade(cnt); 
        
        answer[0] = maxNum;
        answer[1] = minNum;
        
        return answer;
    }
    
         public int grade(int i){
             if( i == 6 ) return 1;
            else if( i == 5) return 2;
            else if( i == 4) return  3;
            else if( i == 3) return  4;
            else if( i == 2) return  5;
            else return 6;
        }
}
함수형 코딩으로 문제를 풀어보았습니다.
아무래도 main함수 안에 코드를 전부 넣는것보다 가독성이 좋은 것 같네요.