KAC-宝くじの最高と最低ランキング(java)


問題の説明




考える


実対の個数と0の個数をそれぞれ求める.
2つを加えた値が最も高く、実際に一致する値が最も低い.

説明する

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関数に入れるよりも毒性が良いようです.