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

fsm12·2023년 6월 29일
0

프로그래머스

목록 보기
25/57
post-thumbnail

문제링크

문제 이해

[ 입력형태 / 조건 ]

lottos
민우가 구매한 로또 번호를 담은 배열 | [44, 1, 0, 0, 31, 25] | 길이 6, 모든 원소는 0 이상 45 이하인 정수

win_nums
당첨 번호를 담은 배열 | 31, 10, 45, 1, 6, 19] | 길이 6, 모든 원소는 1 이상 45 이하인 정수

[ 문제 ]

=> 당첨 가능한 최고 순위와 최저 순위를 차례대로 배열에 담아서 return

[ 풀이 ]

Set에 당첨번호를 담고, 구매한 로또 번호가 있는지를 비교한 후 0의 개수에 따라 등수를 나눔



코드

> [성공] 1차 시도 : Set 이용

  • 생각한 풀이 그대로 구현
import java.util.*;

class Solution {
    public int[] solution(int[] lottos, int[] win_nums) {
        Set<Integer> set = new HashSet<>();
        for(int num : win_nums){
            set.add(num);
        }
        
        int zero_cnt = 0, win_cnt = 0;
        for(int lotto : lottos){
            if(set.contains(lotto)){
                win_cnt++;
            }
            if(lotto == 0){
                zero_cnt++;
            }
        }
        
        int[] ans = new int[2];
        return new int[]{7-((win_cnt+zero_cnt==0)?1:(win_cnt+zero_cnt)), 7-(win_cnt==0?1:win_cnt)};
    }
}




TIP : 어떤 값이 속하는지를 판단할 땐 Set이 편리하다.

0개의 댓글