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

Kim Dae Hyun·2021년 8월 6일
0

Algorithm

목록 보기
3/29
post-thumbnail

문제설명

로또 번호 중 몇 개가 지워졌다.
지워진 부분은 무시하고 나머지 부분으로 최고 순위와 최저 순위를 구하여라.

로또 순위 표


Java Code

import java.util.*;

class Solution {
    public int[] solution(int[] lottos, int[] win_nums) {
        int zero_cnt = 0; // 0인 부분을 체크 (지워진 부분)
        Map<Integer, Integer> map = new HashMap<>();
        for (int i=0;i<lottos.length;i++) {
            if (lottos[i] != 0) {
                map.put(lottos[i], i); // 0이 아닌 숫자를 map에 Put
            } else {
                zero_cnt++; // 0인 경우 카운팅
            }
        }
        
        int correct = 0; // 당첨 번호 수
        for (int i=0;i<win_nums.length;i++) {
            // 알아볼 수 있는 숫자를 답고있는 map의 포함여부로 확인
            if (map.containsKey(win_nums[i])) {
                correct++;
            }
        }
        // 0인 부분(지워진 부분)이 모두 당첨인 경우가 최고 당첨 수
        int max = correct + zero_cnt;
        // 0인 부분이 모두 미당첨인 경우가 최저 당첨 수
        int min = correct;
        
        // 순위 결정
        int best = max > 1 ? (7-max) : 6;
        int worst = min > 1 ? (7-min) : 6;
        
        return new int[]{best, worst};
    }
}
profile
좀 더 천천히 까먹기 위해 기록합니다. 🧐

0개의 댓글