알고리즘
프로그래머스(로또의 최고 순위와 최저 순위)(.Java)
wqdsdsf
2023. 12. 27. 00:27
public class Lotto {
public static void main(String[] args){ //예시 입력값
int[] lotto = {44, 1, 0, 0, 31, 25};
int[] win_nums ={31, 10, 45, 1, 6, 19};
int[] result = solution(lotto, win_nums);
for(int i =0; i<result.length; i++){
System.out.println(result[i]);
}
}
public static int[] solution(int[] lottos, int[] win_nums) {
int count1 = 0;
int zero_count = 0;
for(int i=0; i<6; i++){
if(lottos[i] == 0 && i != 5){ //0값을 찾으면 i를 1올리고 0의 갯수를 세준다(6이면 범위를 벗어나기 때문에 5까지만)
zero_count++;
continue;
}
else if(lottos[i] == 0 && i == 5){ //0값을 찾으면 i를 1올리고 0의 갯수를 세준다(5번째에서 0이 나오면 반복문을 종료시킨다)
zero_count++;
break;
}
for(int j =0; j<6; j++){
if(lottos[i] == win_nums[j]){ //일치하는 값을 찾으면 j를 증가시키는 것을 멈추고 i를 1올린다
count1++;
break;
}
}
}
//if문을 써도 되지만 getRanking을 쓰는 이유는 if else if문을 쓰면 코드가 2배가 되어서 최대한 간결하게 할려고 했다
int ranking1 = getRanking(count1 + zero_count);
int ranking = getRanking(count1);
int[] count = {ranking1, ranking};
return count;
}
public static int getRanking(int count) { //count의 갯수를 세고 등수를 셈
switch (count) {
case 0:
case 1:
return 6;
case 2:
return 5;
case 3:
return 4;
case 4:
return 3;
case 5:
return 2;
case 6:
return 1;
default:
return 0;
}
}
}