Algorithm/programmers

프로그래머스 로또의 최고 순위와 최저 순위 Java

Mini_96 2023. 8. 4. 17:32

코딩테스트 연습 - 로또의 최고 순위와 최저 순위 | 프로그래머스 스쿨 (programmers.co.kr)

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

* 의사코드

//1.당첨몇개인지검사 == 최소순위

//2.남은갯수를 모두 당첨으로 간주 == 최대순위

 

import java.util.*;

class Solution {
    public int[] solution(int[] lottos, int[] win_nums) {
        int[] answer = new int[2];
        Arrays.sort(lottos);
        Arrays.sort(win_nums);
        
        //1.당첨몇개인지검사 == 최소순위
        int cnt=0;
        int zero_cnt=0;
        for(int i=0;i<lottos.length;++i){
            if(lottos[i]==0){
                    zero_cnt++;
                }
            
            for(int j=0;j<win_nums.length;++j){
                if(lottos[i]==win_nums[j]){
                    cnt++;
                    break;
                }
                
            }
        }
        
        if(cnt==6) answer[1]=1;
        else if(cnt==5) answer[1]=2;
        else if(cnt==4) answer[1]=3;
        else if(cnt==3) answer[1]=4;
        else if(cnt==2) answer[1]=5;
        else answer[1]=6;
        
        
        //answer[1]=zero_cnt;
        
        //2.남은갯수를 모두 당첨으로 간주 == 최대순위
        int max_cnt=cnt;
        max_cnt+=zero_cnt;
        
        if(max_cnt==6) answer[0]=1;
        else if(max_cnt==5) answer[0]=2;
        else if(max_cnt==4) answer[0]=3;
        else if(max_cnt==3) answer[0]=4;
        else if(max_cnt==2) answer[0]=5;
        else answer[0]=6;
        
        
        
        
        
        
        return answer;
    }
}