2021 Dev-Matching
🔥 로또의 최고 순위와 최저 순위 🔥
로또의 순위는 아래의 표를 기준으로 정해진다.
로또를 구매한 민우가 동생의 낙서로 일부 번호를 알아볼 수 없게 되었다. 자신이 구매한 로또로 당첨이 가능했던 최고순위와 최저순위를 알아보고자 한다.
알아볼 수 없는 번호를 0으로 표기해서 알아보자.
민우가 구매한 로또 번호를 담은 배열 lottos, 당첨 번호를 담은 배열 win_nums가 매개변수로 주어진다.
이때 당첨 가능한 최고순위와 최저순위를 차례대로 배열에 담아서 return하는 solution을 완성해보자.
lottos | win_nums | result |
---|---|---|
[44, 1, 0, 0, 31, 25] | [31, 10, 45, 1, 6, 19] | [3,5] |
[0, 0, 0, 0, 0, 0] | [38, 19, 20, 40, 15, 25] | [1, 6] |
[45, 4, 35, 20, 3, 9] | [20, 9, 3, 45, 4, 35] | [1, 1] |
class Solution {
public int[] solution(int[] lottos, int[] win_nums) {
int[] answer = new int[2];
int n=0; //일치하는 개수
int zero = 0; //0의 개수
for(int i=0;i<lottos.length;i++){
if(lottos[i] == 0){
zero++;
}
for(int j=0;j<win_nums.length;j++){
if(lottos[i] == win_nums[j]){
n++;
}
}
}
if(n==0 && zero ==0){
answer[0] = 6-(n+zero) ;
answer[1] = 6-n;
}else if(zero==6){
answer[0] = 1 ;
answer[1] = 6;
}else{
answer[0] = 7-(n+zero) ;
answer[1] = 7-n;
}
return answer;
}
}
밑에 조건문이 너무 많이서 별로였는데 다른 코드를 보니 간단히 줄일 수 있었다.
최저순위와 최고순위로 변수로 두고 6보다 큰 경우만 조건문으로 구현했다.
int max = 7-(n+zero);
int min = 7- n;
if(max>6) max = 6;
if(min>6) min = 6;
return new int[] {max,min};