본문 바로가기
알고리즘/프로그래머스

(LEVEL 1)프로그래머스 - 로또의 최고 순위와 최저 순위(JAVA)

by 꾸준함 2023. 1. 18.

문제


입출력 예


풀이.

 

1. 크기만큼 반복문을 돌며 lottos에 저장된 값과 win_nums에 저장된값을 하나씩 비교하며 0의 개수, 일치하는 개수를 따로 저장.

2. 기존 로또와 다르게 등수는 1등-6개/2등-5개/3등-4개/4등-3개/5등-2개/그외 6등으로 이걸 식으로 계산해보면

(7 - 맞춘개수)를하면 등수가 된다. 예외로 맞춘개수가 없을경우 최저순위는 6등이므로 min(7-맞춘개수,6)을 통해 최저순위를 6등으로 치환해준다.

3. 맞춘개수와 0의 개수에 따라서 최고순위(7-맞춘개수+0의개수) 와 최저순위(7-맞춘개수) 를 따로 저장,


코드

class Solution {
    public int[] solution(int[] lottos, int[] win_nums) {
        // 1등-6개 2등-5개 3등-4개 4등-3개 5등-2개 그외 6등
        int[] answer = new int[2];
        int zero = 0;
        int cnt = 0;
        for(int i =0;i<lottos.length;i++){
            if(lottos[i] == 0)
                zero++;
            else{
                for(int j=0;j<win_nums.length;j++){
                    if(lottos[i] == win_nums[j]){
                        cnt++;
                    }
                }
            }
        }
        answer[0] = Math.min(7-(cnt+zero),6);
        answer[1] = Math.min(7-cnt,6);
        return answer;
    }
}