값을 알아볼 수 없게 된 로또 용지에서 내가 당첨될 수 있는 최고의 등수와 최저의 등수를 확인해라
학교 다닐 때 숱하게 나왔던 동생이 낙서해서 알아볼 수 없게 된... 어쩌고... 문제였다
for문으로 푸는 방법을 해볼까 했는데 한창 hashSet을 익히는 중이라 이번 문제는 hashSet으로 풀어봤다
import java.util.*;
class Solution {
public int[] solution(int[] lottos, int[] win_nums) {
//answer의 크기는 항상 2
int[] answer = new int[2];
HashSet<Integer> winArr = new HashSet<>();
for (int wNum : win_nums) {
winArr.add(wNum);
}
int right = 0;// 당첨 번호
int zero = 0;// 0일 경우
for(int l : lottos) {
if(l == 0) {
zero++;
} else if(winArr.contains(l)) {
right++;
}
}
int max = right+zero;//가장 높은 등수는 당첨번호 + 0
int min = right;//당첨번호만
//1개만 당첨되면 7등, 아니면 7 - max등
answer[0] = 7 - max == 7 ? 6: 7 - max;
answer[1] = 7 - min == 7 ? 6 : 7 -min;
return answer;
}
}
성공!!