본문 바로가기
코딩 테스트

프로그래머스 - 로또의 최고 순위와 최저 순위 자바

by 주용사 2023. 1. 9.
728x90

이진탐색을 생각할 수 있느냐 없느냐의 문제

import java.util.*;

class Solution {
    public int[] solution(int[] lottos, int[] win_nums) {
        int[] answer = new int[2];
        boolean[] visited = new boolean[45];
        int zero_cnt = 0;
        int correct_cnt = 0;
        Arrays.sort(win_nums);
        
        for(int ii = 0 ; ii < lottos.length ; ii++)
        {
            if(lottos[ii] != 0)
            {
                if(Arrays.binarySearch(win_nums, lottos[ii]) >= 0)
                    correct_cnt++;
            }
            else
                zero_cnt++;
        }
        
        if(correct_cnt + zero_cnt == 6)
            answer[0] = 1;
        else if(correct_cnt + zero_cnt == 5)
            answer[0] = 2;
        else if(correct_cnt + zero_cnt == 4)
            answer[0] = 3;
        else if(correct_cnt + zero_cnt == 3)
            answer[0] = 4;
        else if(correct_cnt + zero_cnt == 2)
            answer[0] = 5;
        else
            answer[0] = 6;
        
         if(correct_cnt == 6)
            answer[1] = 1;
        else if(correct_cnt == 5)
            answer[1] = 2;
        else if(correct_cnt == 4)
            answer[1] = 3;
        else if(correct_cnt == 3)
            answer[1] = 4;
        else if(correct_cnt == 2)
            answer[1] = 5;
        else
            answer[1] = 6;
        
        return answer;
    }
}

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

728x90