[Programmers]2021 Dev-Martching:Webバックエンド開発者(上半期)-宝くじの最高と最低順位(Java)


1. Problem 📃


[2021 Dev-Martching:Webバックエンド開発者(上半期)-宝くじの最高と最低順位]
https://programmers.co.kr/learn/courses/30/lessons/77484


2. Constraint 🔗



3. Solution 🔑


給餌
  • レベルのrankを初期化する.インデックスは{6,5,4,3,2,1}に初期化され、正しい個数を表し、要素は等号である.
  • はペアの個数のfit変数を表し、知らない番号の0を表すcountZeroも宣言する.
  • lottosの宝くじ番号は親番号(0)ではなく、win numsの当選番号と一致すると、ペアの個数フィッティング(++)、break、0であればcountZero(++)が増加する.
  • 解答表の最初のインデックスは最大でなければなりません.2番目のインデックスは最小でなければなりません.そのため、1番目と2番目の一致する値を代入します.また、最大等数(最初のセル)はcountzero(0は任意の数であるのでcountzeroとも言える).加算する.
  • の回答の長さでドアを回し、rankの長さでドアを回します.
    このとき、正しい個数と同じインデックスの要素を自分の答え欄の値に変更し、0はrankにないのでif文として単独で処理します.答えの値を返します.
  • 正しい個数(インデックス)0個1個2個3個4個5個6等数6654321

    4. Code 💻

    import java.util.ArrayList;
    
    class Solution {
        public int[] solution(int[] lottos, int[] win_nums) {
            int[] answer = new int[2];
            int[] rank = {6, 5, 4, 3, 2, 1};
            int fit = 0;
            int countZero = 0;
            
            ArrayList<Integer> noneFit = new ArrayList<Integer>();
            
            for(int n : lottos) {
            	if(n != 0) {
            		for(int i=0; i<win_nums.length; i++) {
    				if(n == win_nums[i]) {
    					fit++;
    					break;
    				}
    			}
            		noneFit.add(n);
            	}
            	else {
            		countZero++;
            	}
    
            }
            answer[0] = countZero + fit;
            answer[1] = fit;
            
            for(int i=0; i<answer.length; i++) {
            	for(int j=0; j<rank.length; j++) {
            		if(answer[i] == rank[j]) {
            			answer[i] = j+1;
            			break;
            		}
            		else if(answer[i] == 0) {
        				answer[i] = 6;
        			}
            	}
            }
            return answer;
        }
    }

    5. Growth 🍄


    楽透1位で生活水準を上げたい🙏🏻