문제
https://school.programmers.co.kr/learn/courses/30/lessons/77484
생각한 것
코드
import java.util.*;
class Solution {
public int[] solution(int[] lottos, int[] win_nums) {
int[] answer = new int[2];
// 맞은 갯수
int win = 0;
// 등수를 리턴함
// (0 , 6)
// (1 , 6)
// (2 , 5)
// (3 , 4)
// (4 , 3)
// (5 , 2)
// (6 , 1)
// 0 의 갯수 확인
int num_0 = 0;
for(int i = 0 ; i < lottos.length ; i++){
if(lottos[i] == 0){
num_0++;
}
}
// set 생성 후 win_nums 넣기
// Set<Integer> set = new HashSet<>(Arrays.asList(win_nums));
Set<Integer> set = new HashSet<>();
for(int i = 0 ; i < win_nums.length ; i++){
set.add(win_nums[i]);
}
// 하나씩 넣어보기
for(int i = 0 ; i < lottos.length ; i++){
if(set.contains(lottos[i])){
win++;
}
}
//최대
// 하나도 안맞고 0이 없을 때 6을 줘야함
if(win == 0 && num_0 == 0){
answer[0] = 6;
} else{
answer[0] = 7 - (win + num_0);
}
//최소
if(win == 0){
answer[1] = 6;
}else{
answer[1] = 7 - win;
}
return answer;
}
}
마지막 산출에서 좀 막혔던 문제였다.
테스트케이스 몇개가 자꾸 틀려서 확인해보니 산출해줄 때 여러 변수들을 고려해주지 못했다.
0 이 다 있는 경우, 0이 없는 경우 등등