문제요약:
매개변수로 산 로또번호와 로또당첨번호를 받습니다. 이때 0으로 들어온 값이 지워진 로또번호로 0값에 따른 최대순위와 최저순위를 return
코드:
class Solution {
public int[] solution(int[] lottos, int[] win_nums) {
int[] answer = new int[2];
int count0=0,correct=0;
for(int lotto:lottos){
if(lotto==0) count0++;
for(int win_num:win_nums){
if(lotto==win_num) correct++;
}
}
int max=7-(correct+count0);
int min=7-correct;
if(max==7) max=6;
if(min==7) min=6;
answer[0]=max;
answer[1]=min;
return answer;
}
}
코드풀이:
우선 0이 몇개있는지와 0이 아닌 숫자중에 당첨번호가 몇개가 있는지를 확인해야 합니다. 그래서 이중 for 문을 이용하여 lotto 번호가 0일땐 count0 을 ++ 0이 아닌 숫자일 경우 당첨번호와 비교하여 correct++ 를 해줍니다 이때 문제에서 원소들이 정렬외어있지 않을 수도 있다고 했기 때문에 이렇게 반복문 수행 후 6개 다 맞을경우 1등그후 틀린개수만큼 순위가 하락하기 때문에 7-x 로 해준 후 맞은게 없을경우는 6위인데 7이 되기 때문에 7인경우만 6으로 할당 해줍니다. 그 후 return