알고리즘/JAVA

[JAVA] 로또의 최고 순위와 최저 순위 - 프로그래머

야아옹 2021. 7. 24. 00:32

문제 풀이 : 1. 지워진 0의 숫자의 개수를 구하고 로또가 맞은 번호의 개수를 뽑는다.

               2. 위의 조건에 맞게 max 와 min 을 정한다. 

                 최고 등수는 맞은것 + 0의 개수 에 대하여 -7을 하면 값이 나온다!

                 Max = 맞은번호 개수 + 0의 개수의 합이 0이 아닌 경우 :  7 - (맞은 번호 + 0 의 개수)

                          맞은번호 개수+ 0의 개수의 합이 0인 경우 :  6

                 최소 등수는 0의 개수는 무조건 0이라 생각하며 맞은 경우에 대해서만 생각한다.

                 Min = 맞은 번호가 0일 경우 6

                          맞은 번호가 0이 아닌경우 7 - 맞은 번호 개수

public int[] solution(int[] lottos, int[] win_nums) {
        int[] answer = {};
        int matchCount = 0;
        int zeroCount = (int)(Arrays.stream(lottos).filter(x -> x == 0).count());
        for (int i = 0; i < lottos.length; i++)
        {
            for (int j = 0; j < win_nums.length; j++)
            {
                if (lottos[i] == win_nums[j])
                    matchCount++;

            }
        }
        int maxGrade = (matchCount + zeroCount) == 0 ? 6 : 7 - (matchCount + zeroCount);
        int minGrade = matchCount == 0 ? 6 :  7 - matchCount;
        answer = new int[]{maxGrade,minGrade};
        return answer;
    }