실제로 맞은 개수와 0의 개수를 따로 구한다.
두개를 더한값이 최고순위 실제로 맞은값이 최저순위가 된다.
class Solution {
public int[] solution(int[] lottos, int[] win_nums) {
int[] answer = {0,0};
int cnt =0;
int zero =0;
for(int i : lottos){
if (i==0){
zero++;
continue;
}
for(int j : win_nums){
if(i ==j) cnt++;
}
}
int maxNum = grade(cnt+zero);
int minNum = grade(cnt);
answer[0] = maxNum;
answer[1] = minNum;
return answer;
}
public int grade(int i){
if( i == 6 ) return 1;
else if( i == 5) return 2;
else if( i == 4) return 3;
else if( i == 3) return 4;
else if( i == 2) return 5;
else return 6;
}
}
함수형 코딩으로 문제를 풀어보았습니다.
아무래도 main함수 안에 코드를 전부 넣는것보다 가독성이 좋은 것 같네요.