Algorithm/프로그래머스
프로그래머스 로또 최고 순위와 최저 순위
chbong
2022. 8. 9. 22:45
package ch.programmers;
public class Algorithm5 {
/*
코딩테스트 연습
2021 Dev-Matching: 웹 백엔드 개발자(상반기)
로또의 최고 순위와 최저 순위
*/
class Solution {
public int[] solution(int[] lottos, int[] win_nums) {
int[] number = new int[6];
int chk = 0;
int zero = 0;
for(int i =0; i<6 ; i++){
if(lottos[i] != 0){
number[chk] = lottos[i];
chk++;
}else{
zero++;
}
}
int sol = 0;
for(int i=0; i<chk ;i++){
for(int j=0; j<6; j++){
if(number[i] == win_nums[j]){
sol++;
}
}
}
int min = 0;
int max = 0;
if(zero == 0){
max = 7 - sol;
if(sol == 0){
min = 6;
max = 6;
}else{
min = 7 - sol;
}
}else{
if(zero == 6){
min = 6;
}else{
min = 7-sol;
}
if(zero + sol >= 6){
max = 1;
}else{
max = 7 - (zero+sol);
}
}
int[] answer = {max, min};
return answer;
}
}
}
풀이
일단 0이 아닌 로또번호를 구하여서 number에 넣어주었다.
0인 경우는 zero에서 카운팅을 하였다.
numbers와 win_nums(로또 당첨번호) 를 비교하여 만약 같은 숫자가 있다면 sol에 ++ 해주었다.
그 후에 zero가 0개일경우와 아닐경우를 분리하며 최소 최대 등수를 구분하여 해결하였다.