당첨된 숫자의 개수(당첨번호와 로또번호가 일치) ➡️ 최저 순위
0의 개수 + 당첨된 숫자의 개수 ➡️ 최고 순위
rank 배열
인덱스 ➡️ 당첨된 숫자의 개수
값 ➡️ 순위
(예시: 당첨된 숫자의 개수가 6개면 rank[6] = 1, 1위)
stream 에서 anyMatch()를 처음 써봤다!
이거 몰라서 for문 돌렸는데 ㅎ.............................................
다른 분이 anyMatch() 쓰신 걸 보고 나도 바꿨따
딱히 삽질은 안 함
import java.util.Arrays;
public class Lotto {
public int[] solution(int[] lottos, int[] win_nums) {
int[] rank = {6, 6, 5, 4, 3, 2, 1};
int zeroCnt = (int)Arrays.stream(lottos).filter(l -> l == 0).count();
int winCnt = (int)Arrays.stream(lottos).filter(l -> Arrays.stream(win_nums).anyMatch(w -> w == l)).count();
return new int[]{rank[winCnt + zeroCnt], rank[winCnt]};
}
public static void main(String[] args) {
Lotto lotto = new Lotto();
System.out.println(Arrays.toString(lotto.solution(new int[]{44, 1, 0, 0, 31, 25}, new int[]{31, 10, 45, 1, 6, 19}))); // [3, 5]
System.out.println(Arrays.toString(lotto.solution(new int[]{0, 0, 0, 0, 0, 0}, new int[]{38, 19, 20, 40, 15, 25}))); // [1, 6]
System.out.println(Arrays.toString(lotto.solution(new int[]{45, 4, 35, 20, 3, 9}, new int[]{20, 9, 3, 45, 4, 35}))); // [1, 1]
}
}