본문 바로가기

프로그래머스

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

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

 

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

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

programmers.co.kr

풀이

이 문제는 그렇게 어려울것이 없는 문제다 문제를 요약하자면 비어있는수를 통해 당첨될수있는 가장 높은등수와 가장 낮은 등수를 구하면 된다. 즉 가장 높은등수는 0이 전부 당첨된 수라는것이고 가장 낮은 등수는 0이 전부 당첨되지 않은 등수라는 것이다. 그리 어려운 문제가 아니니 코드를 보면 금방 이해가 될것이다.

 

코드

public class Solution {
    int[] solution(int[] lottos, int[] win_nums) {
        int[] ans = new int[2];
        int cnt0=0, same=0;

        for (int lotto : lottos) {
            if(lotto == 0)
                cnt0++;
            for (int win_num : win_nums) {
                if(win_num == lotto)
                    same++;
            }
        }

        ans[0] = getGrede(same+cnt0);
        ans[1] = getGrede(same);

        return ans;


    }

    int getGrede(int n) {
        switch (n) {
            case 2:
                return 5;
            case 3:
                return 4;
            case 4:
                return 3;
            case 5:
                return 2;
            case 6:
                return 1;
            default:
                return 6;
        }
    }

}