[Programmers School] 로또의 최고 순위와 최저 순위

Lucy_1215·2022년 11월 11일
0

프로그래머스

목록 보기
8/10

📆11/11
로또의 최고 순위와 최저 순위

<문제 설명>

<입출력 값>

<문제 해석>
-로또 순위
-6개 일치 : 1등
-5개 일치 : 2등
-4개 일치 : 3등
-3개 일치 : 4등
-2개 일치 : 5등
-그 외 : 6등

-로또 번호가 0 인 것은 번호를 알 수 없다는 뜻

해당 로또의 최대 등수와 최저 등수를 도출하라.

<문제 해결>
1. 먼저 해당 로또의 0의 갯수를 구한다.
=> 0의 개수에 따라 최대, 최저를 구할 수 있다.
2. 해당 로또와 당첨 복권의 일치하는 숫자의 개수을 구한다.
0의 개수 -> zeroCount / 일치하는 숫자의 개수 -> count

최대 일치하는 숫자의 개수(max) => 일치하는 숫자의 개수 + 0의 개수 (count + zeroCount)
최소 일치하는 숫자의 개수(count) => 일치하는 숫자의 개수 (count)

단, max와 count가 0일 경우에는 1로 바꿔준다.

최종 등수
최대 등수 : 7 - max
최저 등수 : 7 - count

<내 코드>

class Solution {
    public int[] solution(int[] lottos, int[] win_nums) {

        int zeroCount =0;
        int count =0;
        int max=0;
        
        for(int lotto : lottos){
            if(lotto == 0) {
                zeroCount++;
            }
            for(int win_num : win_nums){
                if(lotto == win_num){
                    count++;
                }
            }
        }
        
        max = zeroCount + count;
        if(max == 0){
            max =1;
        }
        if(count == 0){
            count =1;
        }

        int answer[] = {7-max, 7-count};

        return answer;
    }
}
profile
성실한 개발자를 꿈꾸는 개발 일지

0개의 댓글