ALGORITHM/프로그래머스 | 백준 | 삼성 | 카카오

[프로그래머스] 로또의 최고 순위와 최저 순위 java

SZCODE 2021. 6. 13. 16:32

https://programmers.co.kr/learn/courses/30/lessons/77484

 

코딩테스트 연습 - 로또의 최고 순위와 최저 순위

로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호

programmers.co.kr

문제 풀이 :

score 배열에 당첨 내용을 넣고 인덱스를 이용해 순위를 출력하였습니다.

min 변수는 lottos 배열과 win_nums 배열에서 일치하는 번호 갯수로, 로또 순위의 최저 순위가 됩니다.

zero_count 변수는 0의 갯수로, 로또 번호를 바꿀 수 있는 갯수입니다. 따라서 min+zero_count는 최고 순위가 됩니다.

class Solution {
    public static int[] solution(int[] lottos, int[] win_nums) {
        int[] answer = new int[2];
        int[] score = {6,6,5,4,3,2,1};
        
        int zero_count = 0, min = 0;
     
        for (int i = 0; i < lottos.length; i++) {
        	if(lottos[i] == 0) {
        		zero_count++;
        		continue;
        	}
        	for (int j = 0; j < win_nums.length; j++) {
				if(lottos[i] == win_nums[j]){
					min++;
					break;
				}
			}
		}
        answer[0] = score[zero_count+min];
        answer[1] = score[min];
   
        return answer;
    }

}