반응형

 

문제 링크

https://programmers.co.kr/learn/courses/30/lessons/77484

 

코딩테스트 연습 - 로또의 최고 순위와 최저 순위

로또 6/45(이하 '로또'로 표기)는 1부터 45까지의 숫자 중 6개를 찍어서 맞히는 대표적인 복권입니다. 아래는 로또의 순위를 정하는 방식입니다. 1 순위 당첨 내용 1 6개 번호가 모두 일치 2 5개 번호

programmers.co.kr

 

class Solution {
    public int[] solution(int[] lottos, int[] win_nums) {
        /*
        0. 문제 계획부터 세운다!!!!!!! 1초 이내 작동할 때
        1. win_nums의 원소를 1개씩 lottos와 비교하여 hit에 카운트한다.
        2. win_nums의 0의 갯수를 카운트한다.
        3. 최저 순위 = hit
        4. 최고 순위 = hit + 0의 갯수
        5. 등수에 맞게 결과를 출력한다.
        */
        /*
        실수
        1. win_nums, lottos 변수 헷갈림
        2. 리턴값을 그냥 hit 등으로 했다.
        */
        int[] answer = {0, 0};
        
        int hit = 0;
        int zeros = 0;
        
        for(int i = 0; i < lottos.length; i++){
            for(int j = 0; j < win_nums.length; j++){
                if(win_nums[i] == lottos[j]){
                    hit = hit + 1;
                }
            }
        }
        
        for(int i = 0; i < lottos.length; i++){
            if(lottos[i] == 0){
                zeros = zeros + 1;
            }
        }
        
        //0~6까지
        //0이면 낙첨, 6이면 1등. 즉 1부터 6까지이다....
        //마지막 1개가 일치했을 때랑 0개가 일치했을 때 예외처리해주자
        answer[0] = hit + zeros;
        answer[1] = hit;
        
        answer[0] = 7 - answer[0];
        if(answer[0] == 7){
            answer[0] = 6;
        }
        answer[1] = 7 - answer[1];
        if(answer[1] == 7){
            answer[1] = 6;
        }
        
        return answer;
    }
    
    
    
}
반응형

+ Recent posts