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

프로그래머스 로또의 최고 순위와 최저 순위 자바 java

by 클로드 2021. 6. 11.
반응형

풀이

배열에서 2가지 값들을 찾아야 한다

1. 당첨 번호와 구매한 번호를 비교하여 같은 번호의 총 개수

2. 구매한 번호의 0의 총 개수

 

두 배열에서 같은 번호를 찾는 방법으론

2중 for문을 이용해서 완전 탐색을 통해서 찾아냈다

 

같은 번호의 총개수로 로또의 최저 순위를 알 수 있고

같은 번호의 총 개수, 구매한 번호 0의 총 개수를 더해서 로또의 최고 순위를 알아낼 수 있다

 

순위 표시를 위해서 함수를 따로 만들어서 처리하였다

코드

class Solution {
    public int[] solution(int[] lottos, int[] win_nums) {
        int matchCount = 0;
        int zeroCount = 0;
        int topRank = 0;
        int lowestRank = 0;

        for (int i = 0; i < lottos.length; i++) {
            if (lottos[i] == 0) {
                zeroCount++;
            }

            for (int j = 0; j < lottos.length; j++) {
                if (lottos[i] == win_nums[j]) {
                    matchCount++;
                    break;
                }
            }
        }

        topRank = rank(matchCount + zeroCount);
        lowestRank = rank(matchCount);

        return new int[]{topRank, lowestRank};
    }
    
    public static int rank(int count) {
        int result = 0;

        switch (count) {
            case 6:
                result = 1;
                break;
            case 5:
                result = 2;
                break;
            case 4:
                result = 3;
                break;
            case 3:
                result = 4;
                break;
            case 2:
                result = 5;
                break;
            default:
                result = 6;
                break;
        }

        return result;
    }
}

 

출처

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

반응형

댓글