import java.util.*;
class Solution {
public int[] solution(int[] lottos, int[] win_nums) {
int[] answer = new int[2];
//두 배열의 값이 같을 때 , lottos 배열의 값이 0일 때 , 최종적으로 -해줄 때 사용할 객체의 선언
//6개 번호가 모두 일치할 때의 값이 1이기 때문에 rank는 7로 선언한다.
int match = 0;
int zero = 0;
int rank = 7;
//배열의 값을 비교하기에 앞서 오름차순으로 두 배열을 정렬
Arrays.sort(lottos);
Arrays.sort(win_nums);
//반복문으로 두 배열의 값을 비교하며 두 배열의 값이 같으면 match가 1씩 더해진다.
for (int i = 0 ; i < lottos.length ; i++){
for (int j =0 ; j < win_nums.length ; j++){
if (lottos[i] == win_nums[j]) match++;
}
//lottos배열의 값이 0일 때 zero가 1씩 더해진다.
if (lottos[i] == 0){
zero++;
}
}
//answer[0]는 최고순위 값이며 zero의 값이 모두 일치했다고 가정한다.
//rank에서 match + zero값을 빼주면 최대순위 값이 반환된다.
answer[0] = (rank - (match + zero));
//Math.min은 인자값 중 더 작은 수를 반환한다.
//rank에서 맞은 값을 뺀 나머지가 6보다 작으면 rank - match를반환
//그 외에 경우에는 7을 반환하는 경우를 막기위해 6으로 설정해준다.
answer[1] = (Math.min(rank - match , 6));
//맞는 값이 하나도 없을 경우에는 최고순위 , 최저순위가 6등이어야한다.
//7이 반환되는 경우를 막기위해 조건을 설정해 6이 반환되도록 해준다.
if (answer[0] == 7 || answer[1] ==7){
answer[0] = 6;
answer[1] = 6;
}
return answer;
}
}
'Plo Algorithm' 카테고리의 다른 글
프로그래머스 Lv1 두개 뽑아서 더하기 (0) | 2022.03.17 |
---|---|
프로그래머스Lv1 같은 숫자는 싫어 (0) | 2022.03.17 |
프로그래머스 Lv1 최소 직사각형 (0) | 2022.03.16 |
프로그래머스 Lv1 하샤드 수 (0) | 2022.03.16 |
프로그래머스 Lv1 콜라츠 추측 (0) | 2022.03.16 |