[프로그래머스] - 로또의 최고 순위와 최저 순위

seb Incode·2022년 2월 21일
0

👀 문제설명

추가 예정

🎯 문제 접근 방식

🏆 Java 소스코드


import java.util.*;

class Solution {
    public int[] solution(int[] lottos, int[] win_nums) {
        
        int count =0; //맞춘 개수
        int unknownNum = 0 ; //모르는 수(0)의 개수
        //로또번호 lottos에서 count
        for(int i=0;i<lottos.length;i++){
            if(lottos[i] == 0){
                unknownNum++;
            }
            //모르는 수 count
            for(int j=0;j<win_nums.length;j++){
                if(lottos[i] == win_nums[j])
                    count++;
            }
        }
       
        
        int[] answer = new int[2]; //답 배열
        
        answer[0] = (7-(count+unknownNum))>6?6:(7-(count+unknownNum));
        answer[1] = (7-count)>6?6:(7-count);
       
        return answer;
    }
}

🎨 후기

for문 사용 횟수를 줄여보겠다고, Arrays.aslist().contains(), Arrays.aslist().indexOf() 등의 메소드를 활용하려고 했었다.
근데 활용하면 당첨 번호 개수를 찾을 때 count를 못한다...
return 값도 잘 찾아봤지만 결국 포기했고,
이 부분은 차후에 다시 공부할 생각이다(가만안둬ㅡㅡ)

또한 마지막 등수 값 뽑아내는 부분 관련해서, 나는 삼항 연산자를 활용했다.
처음엔 단순무식하게 합 7이라는 규칙을 활용하여 최대/최소 등수를 뽑아냈지만,
예외의 경우를 고려하지 못해서 제출 시 에러가 났었다.
문제를 풀고 난 후 다른 개발자 분들의 코드를 참조했을 때 Math()를 다들 활용하셨던 것 같다.

0개의 댓글